30

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

4

4 回答 4

55

\n。当你读或写文本模式文件,或到标准输入/标准输出等时,你必须使用\n,C 将为你处理翻译。当您处理二进制文件时,根据定义,您是靠自己的。

于 2013-08-22T13:20:36.067 回答
16

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

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

这个 C 换行符出现在 3 个地方:C 源代码,在文本模式下char作为文件 I/O 中的单个和行尾。

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

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

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

'\r'源代码中是回车char

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

于 2013-08-22T14:39:14.967 回答
10

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

于 2013-08-22T12:07:01.483 回答
5

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

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

于 2013-08-22T12:15:14.537 回答