【发布时间】:2021-09-19 03:18:14
【问题描述】:
我正在尝试读取包含二进制 mod 中数据的文件。该文件的大小为 28 字节,但当我尝试读取此文件时,我只有 22 字节。我已经尝试修改文件中的信息,但它仍然缺少一些字节。我不知道为什么。 PS:我知道文件中包含哪些数据,但它们在任何类型的计算机字符编码标准中都不可读。 用于读取文件的代码:
std::string line{ "" };
std::string buffer;
while (std::getline(file, line))
buffer += line;
file.close();
【问题讨论】:
-
如果你的数据是二进制的,你可能不想这样读取它,尤其是如果你的操作系统是 MS Windows。
-
您正在尝试将二进制数据作为文本读取,但这是行不通的。 Google 获取有关如何读取二进制文件的示例,或咨询good c++ book
-
我想读取所有的二进制数据,因为是我把它们放进去的。所以如果我能完全恢复它们就更好了(必须的)
-
它适用于
std::vector<unsigned char> buffer(std::istreambuf_iterator<char>(file), {});谢谢(我有正确的字节数)
标签: c++