#include <fstream>
#include <iostream>
using namespace std;
const char *file = "planets.dat";
void main()
{
ifstream fin;
fin.open(file,ios::in | ios::binary);
}
С++ Как перенаправить поток?
Я так понимаю что в
size_t fread(
void* buffer,
size_t size,
size_t count,
FILE* stream
);
stream = fopen( "fread.out", "w+t") //на фаил
надо чтоб както FILE* stream указывал на буфер?
stream = ?????????????
или это как то это иначе делается ,подскажите пожалуста.
Память между буферами копируется с помощью memcpy()
Поясните тогда пожалуста ,у меня в коде часто применяется ф-ия fread которая принимает параметр
FILE* stream
По ряду причин я бы хотел чтобы ему соответствовал не фаил
stream = fopen("My_Wave.wav", "rb");
А буфер в памяти, возможно ли это реализовать и если да то как?
stream = ????????????
Цитата: KuMa1104
Спасибо!
Поясните тогда пожалуста ,у меня в коде часто применяется ф-ия fread которая принимает параметр
FILE* stream
По ряду причин я бы хотел чтобы ему соответствовал не фаил
stream = fopen("My_Wave.wav", "rb");
А буфер в памяти, возможно ли это реализовать и если да то как?
stream = ????????????
Поясните тогда пожалуста ,у меня в коде часто применяется ф-ия fread которая принимает параметр
FILE* stream
По ряду причин я бы хотел чтобы ему соответствовал не фаил
stream = fopen("My_Wave.wav", "rb");
А буфер в памяти, возможно ли это реализовать и если да то как?
stream = ????????????
Не силен в неБилдоровской системе классов, а разве нет чего-то типа mstream (Memory Stream)?
Отстаньте вы от старой бедной сишной fread(). На моей памяти она работает только с файлами. Тут разве что CRT переделывать, но это бред. Вот если бы вы воспользовались C++ной поточной системой, можно было б подсунуть любой, в том числе свой, класс-наследник iostream.
[COLOR="Blue"]Phodopus[/COLOR]
А говоря о C++ной поточной системе вы имеете в виду что то вроде:
Код:
Тут ведь fin.open пренимает только лиш фаил , как понять ваши слова [COLOR="Red"] свой, класс-наследник iostream.[/COLOR]??
Я не панимаю как наследование от класса iostream поможет мне?
Если бы у вас было
Код:
#include <fstream>
#include <iostream>
using namespace std;
const char *file = "planets.dat";
void main()
{
ifstream fin(file,ios::in | ios::binary);
fin.someerrcheck();
fin >> someint;
fin >> somethelse;
}
#include <iostream>
using namespace std;
const char *file = "planets.dat";
void main()
{
ifstream fin(file,ios::in | ios::binary);
fin.someerrcheck();
fin >> someint;
fin >> somethelse;
}
то потом можно б было заменить ifstream на свой класс-поток работающий с памятью, не меняя при этом остальных частей программы (где чтение осуществляется операцией извлечения из потока)
сложновато звучит:
Цитата:
заменить ifstream на свой класс-поток работающий с памятью
спасибо, возюму на заметочку попробую потом разобратся.