Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Сохранение содержимого файла в память


Автор: DubrovinAV 28.10.2007, 16:54
Нужно прочитать, возможно, большой файл. В недавней теме оптимальным вариантом чтения из файла определили чтение целиком и в двоичном режиме. Так вот то что считали нужно сохранить в памяти и проанализировать. Так вот вопрос в том как сохранить? Вероятнее всего лучше использовать для хранения объект класса string(поправьте если не так). Попробовал вот так:

Код

ifstream inFile("text.txt", ios::binary);
string Storage(reinterpret_cast<char *>(inFile.rdbuf()));
cout<<Storage<<endl;//На экране три кракозябры
cout<<inFile.rdbuf()<<endl;//Отображает деиствительное содержимое файла


В чем может быть ошибка. Это cout выводит не то, или Storage не проинициализировался.
Если можно приведите пример того как следует написать.
Заранее спасибо!

Автор: Daevaorn 28.10.2007, 17:29
Цитата(DubrovinAV @  28.10.2007,  17:54 Найти цитируемый пост)
В недавней теме оптимальным вариантом чтения из файла определили чтение целиком и в двоичном режиме. 

Оптимальным для чего?
Цитата(DubrovinAV @  28.10.2007,  17:54 Найти цитируемый пост)
Вероятнее всего лучше использовать для хранения объект класса string(поправьте если не так)

нет
Цитата(DubrovinAV @  28.10.2007,  17:54 Найти цитируемый пост)
Попробовал вот так:

Нужно узнать размер файла. Выделить под него буфер и прочитать, если конечно нужно целиком и сразу.

Автор: archimed7592 28.10.2007, 18:38
Цитата(DubrovinAV @  28.10.2007,  16:54 Найти цитируемый пост)
string Storage(reinterpret_cast<char *>(inFile.rdbuf()));

smile

Автор: DubrovinAV 28.10.2007, 19:32
Научите. Покажите пример. smile  

Автор: mhalion 28.10.2007, 19:57
CreateFileMapping - поищи это в msdn'е
или это http://msdn2.microsoft.com/en-us/library/aa366556.aspx

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)