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

时间:2013-08-22 12:01:04

标签: c newline

C中的换行符是什么?我知道不同的操作系统有不同的行尾字符,但它们被翻译成C换行符。这个角色是什么?

4 个答案:

答案 0 :(得分:45)

这是\n。当您正在阅读或编写文本模式文件或stdin / stdout等时,您必须使用\n,C将为您处理翻译。当你处理二进制文件时,根据定义你就是你自己。

答案 1 :(得分:12)

可以将新行视为某些 char,其值为'\n'。 C11 5.2.1

此C新行出现在3个位置:C源代码,单个char以及 text 模式下文件I / O中的行尾

  1. 许多编译器会将源文本视为ASCII。在这种情况下,代码10,有时是13,有时配对13,10作为源代码的新行。如果源代码在另一个字符集中,则可以使用不同的代码。这个新行通常标志着一行源代码的结束(这里实际上有点复杂),//注释和#指令。

  2. 在源代码中,2个字符\nchar换行符表示为\n。如果使用ASCII,则此char的值为10.

  3. 在文件I / O中,在文本模式下,在读取输入文件(和stdin)的字节时,取决于环境,当字节时值为10(Unix), 13,10 ,(* 1)(Windows),13(旧Mac ??)和其他变体被翻译成'\ n' 。在写入文件(或标准输出)时,会发生反向翻译 注意:二进制模式下的文件I / O不进行翻译。

  4. 源代码中的'\r'是回车char

    (* 1)单独的 13 和/或 10 也可能会转换为\n

答案 2 :(得分:8)

如果您的换行符是换行符,则 \ n \ r 运营商返回字符,但如果你的意思是换行结束那么它取决于操作系统:DOS使用回车符和换行符(“\ r \ n”)作为行结尾,Unix只使用它换行(“\ n”

答案 3 :(得分:4)

'\ r'=回车符和'\ n'=换行符。

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

相关问题