【发布时间】:2013-06-21 09:31:55
【问题描述】:
我正在使用 VisualC++ 2010, 我有一个 9600000 字节的大字符串要打印
当我将它写入文件时,文件大小更大 9 957 891 字节。为什么?
我在调试模式下检查了文件大小,所以我确定它是 9600000
ofstream output_asci("output.bin");
output_asci<<the_string;
output_asci.close();
【问题讨论】:
-
不知道。文件中有换行符吗?如果是这样,它们将在 Windows 系统上从
'\n'转换为'\r','\n',以匹配 Windows 文件中的传统换行符。 -
这是因为系统添加了一些用户不可见的东西来帮助它理解文件。
-
@Infested:我不这么认为(除非你指的是与换行符一起组成换行符的回车)。
-
抱歉,不是在文件中,对吧?
-
@Infested:这在我 27 年的编程生涯中从未见过。文件包含您写给他们的内容。没有其他的。 C 运行时将转换换行符,但如果您将 16 个字节写入文件(没有换行符),则该文件将包含 16 个字节,不多也不少。当然,磁盘上占用的实际空间可能更大,因为大多数文件系统都有一些块大小,它会被四舍五入到[在真正旧的文件系统中,文件中没有字节数,所以文件必须有一个结束标记]
标签: c++ string file printing visual-c++-2010