This question already has an answer here:
Why does ofstream insert a 0x0D byte before 0x0A?

(1个答案)


5年前关闭。




以下C++代码:
ofstream out("File.txt");
const char *str = "0\r\n1\r\n2\r\n";
out << str;

创建以下文件(上面的File.txt):

为什么会有额外的CR和LF?我的平台是Windows 7和VS 2013编译器。

上面的情况将导致我的另一个程序出现问题,该程序将逐行解析该文件,并且该程序假定每一行都将包含数据。我可以删除空行,但我想了解为什么保存str时会有多余的CR和LF。

最佳答案

\n输出特定于平台的换行符,在这种情况下,每个\n都写为\r\n。您无需手动添加自己的\r,它就是重复项的来源。

关于c++ - 多余的运输回程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29090832/

10-10 06:16