Как прочитать часть из файла в stringstream? - PullRequest
0 голосов
/ 20 апреля 2011

Мне нужно передать данные в поток строк из двоичного файла:

stringstream body;
body << std::ifstream( path.string().c_str(), ios::binary).rdbuf();

Но он читает весь файл от начала до конца.

Как мне прочитать файлв поток строк, начиная с 200th байта и продолжая до 3000th?

1 Ответ

4 голосов
/ 20 апреля 2011

Я не знаю, как напрямую читать из буфера чтения файла в stringstream.Это не значит, что никто не существует;это просто означает, что я не знаю этого по макушке.: -)

Один из вариантов, который вы могли бы изучить, - это прочитать данные во временный буфер, а затем поместить это string в stringstream с помощью метода str().Это может выглядеть следующим образом:

ifstream input(/* ... filename ... */, ios::binary)
input.seekg(streampos(200)); // Seek to the desired offset.

char buffer[3000 - 200]; // Set up a buffer to hold the result.
input.read(buffer, streamsize(sizeof(buffer)));

stringstream myStream(buffer); // Convert to a stringstream

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...