C语言中的换行符是什么:\r还是\n?

32

C中的换行符是什么?我知道不同的操作系统有不同的换行字符,但它们都被转换成C中的换行符。那个字符是什么?

4个回答

58

这是\n。 当您阅读或写入文本模式文件,或者使用stdin/stdout等时,必须使用\n,C语言会自动处理翻译。 如果您处理的是二进制文件,则需要自行处理。


18
C语言中的换行符是什么:\r 还是 \n?
换行符可以被视为一个char,并且它的值为'\n'。C11 5.2.1
C语言中的换行符出现在三个地方:C源代码中作为单个char以及在文本模式下作为文件I/O的行末。
许多编译器将源代码视为ASCII。在这种情况下,10、有时13、有时成对的13,10会被视为源代码的换行符。如果源代码在另一种字符集中,可能会使用不同的代码。这个换行符通常标志着源代码的一行的结尾(实际上有点复杂),//注释和#指示。
在源代码中,2个字符\和n表示char换行符为\n。如果使用ASCII,则此char的值为10。
在文件I/O中,在文本模式下,读取输入文件(和stdin)的字节时,根据环境,当值为10(Unix)、13,10(*1)(Windows)、13(旧Mac?)和其他变化的字节转换为'\n'。写入文件(或stdout)时,反向转换发生。注意:二进制模式下的文件I/O不进行任何转换。
源代码中的\r是回车符char。
(*1)孤立的13和/或10也可以转换为\n。

11

如果你说的换行是指换行符,那么它就是\n,而\r回车符,但是如果你说的换行是指行结尾,那就取决于操作系统:DOS使用回车和换行符("\r\n")作为行结尾,而Unix只使用换行符("\n"


5

'\r'代表回车,'\n'代表换行。

实际上,在不同的操作系统中使用它们时会有一些不同的行为。在Unix中,它是'\n',但在Windows中是'\r''\n'。


经典的 Mac OS 也仅使用了 \r - leetbacoon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接