我正在尝试使用 std::ofstream::write
方法编写二进制文件。我发现,有些字符不是按原样写的,例如:
std::ofstream in("testout");
int i =10;
in.write((const char *)(&i), sizeof(i));
in.close();
return 0;
将以下内容写入二进制文件:0d 0a 00 00 00
为什么会出现额外的 0d
字节?
最佳答案
您必须在打开时指定 std::ofstream::binary
。
否则,在文本文件模式的 Windows 上,程序中的 \n
(0x0a
) 将转换为/自 \r\n
(0x0d 0x0a
) 写入/读取文件时。
关于c++ - std::ofstream::write 添加字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21982768/