【发布时间】:2013-05-15 20:50:38
【问题描述】:
运行以下代码:
ofstream newfile(path + "file" + ".hash", fstream::out);
filefl.open(path + "file" + ".hash", fstream::out);
char a = 10;
filefl<<a;
filefl.close();
生成一个包含0D 0A 的文件(使用十六进制编辑器查看)。
当a=9 包含09 的文件时。 sizeof(char) 是 1。
我的操作系统是win7 x64,代码是通过vs2010 pro运行的。
有人可以解释一下吗?
【问题讨论】:
-
您实际期望的结果是什么?
0D0A是回车换行。您的操作系统可能会将您的 10(即 0A)扩展为 CRLF 组合。您应该以任何可用的二进制模式打开文件。 -
值
10由流转换为回车/换行组合。这是 Windows 特定的顺便说一句。