如何从文件中读取部分内容到字符串流中?

Rel*_*lla 1 c++ file

我需要将数据从二进制文件流式传输到字符串流:

stringstream body;
body << std::ifstream( path.string().c_str(), ios::binary).rdbuf();
Run Code Online (Sandbox Code Playgroud)

但它从头到尾读取了整个文件。

如何将文件从200thbyte 开始读取到 stringstream 并转到3000th

tem*_*def 5

据我所知,无法直接从文件的读取缓冲区读取到stringstream. 这并不意味着它不存在;而是意味着它不存在。这只是意味着我根本不知道这一点。:-)

您可能想要探索的一个选项是将数据读入临时缓冲区,然后使用该方法将其string放入。这可能如下所示:stringstreamstr()

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
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!