C语言中的换行符是什么:\ r或\ n?
C中的换行符是什么? 我知道不同的操作系统有不同的行尾字符,但它们会被翻译成C换行符。 这个角色是什么?
它是\n
。 当您正在读取或写入文本模式文件或stdin / stdout等时,必须使用\n
,C将为您处理翻译。 当您处理二进制文件时,根据定义,您可以自己管理。
新行可能被认为是一些 char
,它的值为'\n'
。 C11 5.2.1
这个C新行出现在3个位置:C源代码,作为单个char
,在文本模式下作为文件I / O中的行尾。
-
许多编译器会将源文本视为ASCII。 在这种情况下,代码10,有时是13,有时配对13,10作为源代码的新行。 如果源代码在另一个字符集中,则可以使用不同的代码。 这个新行通常标志着一行源代码的结束(这里实际上有点复杂),//注释和#指令。
-
在源代码中,2个字符的文本
\n
表示char
新行。 如果使用ASCII,则此char
的值为10。 -
在文件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希望它可以帮助你。