Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранение содержимого файла в память, средствами С++ 
V
    Опции темы
DubrovinAV
  Дата 28.10.2007, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



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

Код

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


В чем может быть ошибка. Это cout выводит не то, или Storage не проинициализировался.
Если можно приведите пример того как следует написать.
Заранее спасибо!
PM MAIL   Вверх
Daevaorn
Дата 28.10.2007, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



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

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

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

Нужно узнать размер файла. Выделить под него буфер и прочитать, если конечно нужно целиком и сразу.
PM MAIL WWW   Вверх
archimed7592
Дата 28.10.2007, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



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

smile


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
DubrovinAV
Дата 28.10.2007, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



Научите. Покажите пример. smile  
PM MAIL   Вверх
mhalion
Дата 28.10.2007, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 18.2.2007

Репутация: нет
Всего: нет



CreateFileMapping - поищи это в msdn'е
или это http://msdn2.microsoft.com/en-us/library/aa366556.aspx
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0428 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.