Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

С++ Как перенаправить поток?

44K
01 мая 2009 года
KuMa1104
9 / / 16.04.2009
подскажите ф-ия fread читает в буфер из фаила, а если необходимо читать в буфер из буфера?
Я так понимаю что в
size_t fread(
void* buffer,
size_t size,
size_t count,
FILE* stream
);

stream = fopen( "fread.out", "w+t") //на фаил
надо чтоб както FILE* stream указывал на буфер?
stream = ?????????????

или это как то это иначе делается ,подскажите пожалуста.
14
04 мая 2009 года
Phodopus
3.3K / / 19.06.2008
Память между буферами копируется с помощью memcpy()
44K
05 мая 2009 года
KuMa1104
9 / / 16.04.2009
Спасибо!
Поясните тогда пожалуста ,у меня в коде часто применяется ф-ия fread которая принимает параметр
FILE* stream
По ряду причин я бы хотел чтобы ему соответствовал не фаил
stream = fopen("My_Wave.wav", "rb");
А буфер в памяти, возможно ли это реализовать и если да то как?
stream = ????????????
1.9K
06 мая 2009 года
GreenRiver
451 / / 20.07.2008
Цитата: KuMa1104
Спасибо!
Поясните тогда пожалуста ,у меня в коде часто применяется ф-ия fread которая принимает параметр
FILE* stream
По ряду причин я бы хотел чтобы ему соответствовал не фаил
stream = fopen("My_Wave.wav", "rb");
А буфер в памяти, возможно ли это реализовать и если да то как?
stream = ????????????


Не силен в неБилдоровской системе классов, а разве нет чего-то типа mstream (Memory Stream)?

14
06 мая 2009 года
Phodopus
3.3K / / 19.06.2008
Отстаньте вы от старой бедной сишной fread(). На моей памяти она работает только с файлами. Тут разве что CRT переделывать, но это бред. Вот если бы вы воспользовались C++ной поточной системой, можно было б подсунуть любой, в том числе свой, класс-наследник iostream.
44K
06 мая 2009 года
KuMa1104
9 / / 16.04.2009
Спасибо Mr. [COLOR="Blue"]Phodopus [/COLOR] и [COLOR="Blue"]GreenRiver [/COLOR]:)

[COLOR="Blue"]Phodopus[/COLOR]
А говоря о C++ной поточной системе вы имеете в виду что то вроде:

 
Код:
#include <fstream>
#include <iostream>
using namespace std;
const char *file = "planets.dat";
void main()
{
           ifstream fin;
    fin.open(file,ios::in | ios::binary);
}


Тут ведь fin.open пренимает только лиш фаил , как понять ваши слова [COLOR="Red"] свой, класс-наследник iostream.[/COLOR]??
Я не панимаю как наследование от класса iostream поможет мне?
14
07 мая 2009 года
Phodopus
3.3K / / 19.06.2008
Да, что-то вроде этого :)
Если бы у вас было
Код:
#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;
}

то потом можно б было заменить ifstream на свой класс-поток работающий с памятью, не меняя при этом остальных частей программы (где чтение осуществляется операцией извлечения из потока)
44K
07 мая 2009 года
KuMa1104
9 / / 16.04.2009
Мда....... Чем глубже в лес тем толще партизаны!:)
сложновато звучит:
Цитата:
заменить ifstream на свой класс-поток работающий с памятью



спасибо, возюму на заметочку попробую потом разобратся.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог