为什么我的 read 语句不记录二进制数据

Why isn't my read statement recording binary data

本文关键字:记录 二进制 数据 语句 我的 read 为什么      更新时间:2023-10-16

我有一个大文档,有两个部分。 第一个是标题,它使用标准字符并以 [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字符时停止。