(再次)揭秘换行符

San*_*eep 2 c c++

我们知道Windows使用CR + LF对作为换行符,Unix(包括Linux和OS X)使用单个LF,而MacOS使用单个CR。

这是否意味着 C 和 C++ 中换行符的解释取决于执行环境,即使K&R (section 1.5.3 Line Counting)非常明确地声明了以下内容?

所以'\n'代表换行符的值,在ASCII中是10。

Eri*_*hil 5

\n

我们知道 Windows 使用 CR + LF 对作为换行符,\xe2\x80\xa6

\n
\n

您链接到的页面并未说明 Windows 使用 \xe2\x80\x9cCR + LF\xe2\x80\x9d 作为其换行符。它说 Windows 使用回车符和换行符标记文本文件中的行结束。这并不意味着这些字符是换行符,反之亦然。

\n
\n

这是否意味着换行符\xe2\x80\xa6的解释

\n
\n

换行符是换行符。在C中,它的目的是标记一个新行。使用 ASCII 时,ASCII\xe2\x80\x99s 换行符(代码 10)通常用作 C\xe2\x80\x99s 换行符('\\n' )。

\n

如果 C 程序使用二进制流读取 Windows 样式的文本文件,它将看到一个回车符和一个标记行结束的换行符。如果 C 程序使用文本流读取 Windows 风格的文本文件(在支持此功能的环境中),则 Windows 行结束指示(回车符和换行符)将自动转换为 C 换行符人物。

\n

相反,如果 C 程序使用文本流写入 Windows 样式的文本文件,则其写入的换行符将被转换为 Windows 行结束指示。如果使用二进制流写入,则必须自行写入回车符和换行符。

\n