这是操作系统对文本文件中的换行符处理的区别造成的。
在UNIX系统中,产生一个新行需要的字符序列只需要一个'\n'即可(该字符称为换行符或LF字符,ASCII码为10);
在DOS/Windows中,产生一个新行的字符序列包含两个连续字符"\r\n",即回车符(CR,ASCII码为13)和换行符,俗称回车换行序列,或CRLF序列。
又如在MacOS中,产生一个新行的字符序列则是一个单个的回车符。
这些平台间的区别导致同一个文本文件在不同的系统中处理起来变得很麻烦,所以C语言标准库在处理文本文件时,会自动将这些差异、根据运行平台上某个方便的方式进行统一,以降低程序的复杂性。
在PC平台上(指DOS/Windows),默认的新行序列是CRLF,即13、10,所以用文本方式写入文件时,在写入表示行结束的 \n 字符字符时,会自动在前面插进一个\r字符,以便构成完整的crlf序列。
温馨提示:答案为网友推荐,仅供参考