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

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

它是\n 。 当您正在读取或写入文本模式文件或stdin / stdout等时,必须使用\n ,C将为您处理翻译。 当您处理二进制文件时,根据定义,您可以自己管理。

新行可能被认为是一些 char ,它的值为'\n' 。 C11 5.2.1

这个C新行出现在3个位置:C源代码,作为单个char ,在文本模式下作为文件I / O中的行尾。

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

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

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

源代码中的'\r'是回车符号。

(* 1)单独的13和/或10也可以转换成\n

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

‘\ r’=回车,’\ n’=换行,实际上当你在不同的操作系统中使用它们时会有一些不同的行为。在Unix中它是’\ n’但它是’\ r”\ n’在Windows.I希望它可以帮助你。