c++ - 如何从文件中读取部分内容到stringstream?

标签 c++ file

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

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

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

如何将文件从 200th 字节开始读取到 stringstream,然后到 3000th

最佳答案

据我所知,没有办法直接从文件的读取缓冲区读取到 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

希望这对您有所帮助!

关于c++ - 如何从文件中读取部分内容到stringstream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5723077/

相关文章:

C++:在WINDOWS上写入BMP图像格式错误

c++ - penter 和 pexit 的 Visual Studio 宏

android - 我可以在 Android 上开发 Android 应用程序吗?

MySQL - 使用文件中的 ID 列表作为 SELECT COUNT() 的多个条件

netbeans - Netbean 可以编辑远程文件吗

c++ - 如何使用 QT 创建 JSON 数组

c++ - 用C++中的字符串替换空格

c# - 为什么这个 C# 代码这么慢?优化目录/文件搜索和添加所需

file - 从 TortoiseHG 数据源中删除文件

php - 如何在 php 中显示 CSV 文件中的特定列?