2014-10-10 4 views
0

Я сопоставил свой файл с памятью с помощью boost::iostreams::mapped_file_source и объявил поток для чтения файла как boost::iostreams::stream <boost::iostreams::mapped_file_source> streamReader.Как искать указатель потока файла с отображением памяти (с использованием boost)?

Он отлично работал, и я смог разобрать файл с отображением памяти. Я использовал getline, чтобы прочитать весь файл и сохранить определенные смещения из файла. Во время выполнения этой операции я смог использовать seekg, чтобы искать streamReader в нужную позицию. Но как только весь файл будет прочитан, я не могу искать streamReader в любом месте.

streamReader.fail() возвращает true. Ли streamReader очищает указатель, когда он достигает конца файла?

Есть ли способ, чтобы я мог перейти к желаемому смещению файла после прочтения всего файла?

ThankYou

ответ

1

Я думаю, вы должны вызвать метод clear() потока для сброса его состояния.

См http://www.cplusplus.com/reference/ios/ios/clear/

+0

Да ... называется ясно(), и теперь он работает отлично. Так что теперь я думаю, что это было потому, что failbit был установлен после достижения конца файла. Большое спасибо John .. – Jackzz

 Смежные вопросы

  • Нет связанных вопросов^_^