【发布时间】:2011-11-19 14:04:18
【问题描述】:
我的第一个问题是,为什么习惯上使用无符号字符以二进制模式写入文件?在我看到的所有示例中,在写入二进制文件之前,任何其他数值都会转换为 unsigned char。
我的第二个问题是,使用流运算符写入二进制文件有什么不好?我听说 read() 和 write() 运算符最适合写入二进制文件,但我真的不明白为什么会这样。如果我首先将值转换为无符号字符,则使用流运算符写入二进制文件对我来说很好。
float num = 500.5;
ostream file("file.txt", ios::binary);
file << num // results in gibberish when I try to read the file later
file << (unsigned char)num // no problems reading the file with stream operators
提前致谢。
【问题讨论】: