如何从文件中读取部分到stringstream?

时间:2011-04-19 21:43:03

标签: c++ file

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

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

但它从开始到结束时都读取了整个文件。

如何从200th字节开始读取字符串流的文件,然后转到3000th

1 个答案:

答案 0 :(得分:4)

我无法直接从文件的读缓冲区读取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

希望这有帮助!