为什么我的 read 语句不记录二进制数据
Why isn't my read statement recording binary data
我有一个大文档,有两个部分。 第一个是标题,它使用标准字符并以 [END]
结尾。 第二部分是二进制的,看起来像: NUL DLE NUL DC1 NUL
. 我正在尝试使用 ifstream 阅读本文档。 我的代码是:
std::string filename = "file.txt";
std::ifstream originalFile;
originalFile.open(filename,std::ios::binary);
std::streampos fsize = 0;
fsize = originalFile.tellg();
originalFile.open(0,std::ios::end);
fsize = originalFile.tellg() - fsize;
char * buffer = new char [int(fsize)];
originalFile.seekg(0,std::ios::beg);
originalFile.reade(buffer,fsize);
std::cout << fsize << std::endl;
std::cout << buffer << std::endl;
当我运行它时,程序输出我的文件的整个头,然后结束。 它不访问或打印任何二进制数据。 这是使用的正确命令吗?如果没有,还有什么我可以尝试的吗?
文件数据的转储(大概;y 真的看起来像std::cout << buffer << std::endl;
)在遇到它认为是 C 样式字符串末尾的NUL
字符时停止。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 有根的二进制搜索树.保留与其父级的链接
- 多态二进制函数
- 将两个数组中的差异记录在第三个数组中
- 正在读取二进制文件(is_open)
- C++ 中混合二进制/文本日志记录的最佳做法
- 在二进制文件中删除记录
- 无法从我创建的 c 二进制程序中删除记录
- 为什么我的 read 语句不记录二进制数据
- 使用结构在二进制文件中创建多个记录
- 程序写入记录在 C++ 的二进制文件中两次
- 使用QSORT对大型、二进制、固定长度的记录进行排序
- 创建一个二进制文件,向其中添加信息,并从中读取所有记录(电话簿)
- Ada变体记录是否可以二进制兼容c++联合?
- 用c++更新二进制文件中的记录
- 如何使用seekg与字符串输入从二进制文件中获取记录
- 更新二进制文件中的学生记录,同时删除以前的数据
- 在二进制文件中添加特定的记录
- 不能将记录附加到二进制文件中
- 从二进制文件中删除记录