Могу ли я обработать isstrstream для получения случайных поисков в базовый буфер ввода-вывода? - PullRequest
0 голосов
/ 16 ноября 2011

У меня есть код, который будет читать весь файл в буфер.В моих целях я могу гарантировать, что размер такого файла не превышает, скажем, 10 МБ ... достаточно мал, чтобы нам никогда не приходилось беспокоиться о проблемах с перебоями или реальной производительностью при выполнении чтения всего файла.

Кроме того, в настоящее время я извлекаю строку за раз, используя isstrstream в результирующем буфере всего файла.Это прекрасно работает и позволяет мне использовать базовые строковые данные по одной строке за раз.

Однако теперь мне нужно посмотреть, смогу ли я сохранить текущую позицию isstrstream и "перейти туда" позже ...то есть скопируйте isstrsteam и обычно рассматривайте его как объект значения.Разрешено / гарантировано ли это как разумное использование isstrstreams?

Если это имеет значение, я использую VS2010.

Кроме того, как бы вы посмотрели ответы на что-то подобное (другоечем stackoverflow)?Выполнение некоторых поисков в Google дает мне много случайных точек данных об отдельных методах isstrsteam и приводит к большому разнообразию информации о связанных классах - базовых классах, братьях и сестрах или подклассах.Но ответить на поставленный вопрос гораздо менее ясно (для меня).

1 Ответ

0 голосов
/ 19 ноября 2011

Можно использовать члены istream <> :: tellg () и istream <> :: seekg () для сохранения / восстановления позиции потока, аналогично fgetpos и fsetpos.

istrstream поддерживает эти методы, посколькуделает поток.

...