以下控制字符的含义:

回车 换行 换页


当前回答

Apart from above information, there is still an interesting history of LF (\n) and CR (\r). [Original author : 阮一峰 Source : http://www.ruanyifeng.com/blog/2006/04/post_213.html] Before computer came out, there was a type of teleprinter called Teletype Model 33. It can print 10 characters each second. But there is one problem with this, after finishing printing each line, it will take 0.2 second to move to next line, which is time of printing 2 characters. If a new characters is transferred during this 0.2 second, then this new character will be lost.

于是科学家们找到了解决这个问题的方法,他们在每行后面加了两个结尾字符,一个是“回车”,这是告诉打印机将打印头移到左边。另一个是“换行”,它告诉打印机将纸张上移一行。

后来,计算机变得流行起来,这两个概念都用在了计算机上。当时的存储设备很贵,所以有科学家说每行末尾加两个字很贵,一个就够了,所以用哪个就有一些争论。

在UNIX/Mac和Linux中,'\n'被放在每行的末尾,在Windows中,'\r\n'被放在每行的末尾。这种使用的结果是,如果在Windows中打开,UNIX/Mac中的文件将显示在一行中。而Windows中的文件如果在UNIX或Mac中打开,则每行末尾会有一个^M。

其他回答

看看维基百科:

基于ASCII或兼容字符集的系统分别使用LF(换行,'\n', 0x0A,十进制10)或CR(回车,'\r', 0x0D,十进制13),或CR后跟LF (CR+LF, 0x0D 0x0A)。这些字符是基于打印机命令的:换行指示一行纸应该从打印机输出,回车指示打印机的回车应返回到当前行的开头。

回车是指返回到当前行的开头,不向下移动。这个名字来源于打印机的支架,因为在这个名字被创造出来的时候显示器还很少见。这通常转义为“\r”,缩写为CR, ASCII值为13或0xD。

换行意味着向下推进到下一行;然而,它已被重新命名。作为“换行符”使用,它终止行(通常与分隔行混淆)。这通常转义为“\n”,缩写为LF或NL, ASCII值为10或0xA。CRLF(而不是CRNL)用于对“\r\n”。

表单提要意味着向下推进到下一个“页面”。它通常用作页面分隔符,但现在也用作部分分隔符。文本编辑器可以在“插入分页符”时使用此字符。它通常转义为“\f”,缩写为FF, ASCII值为12或0xC。


作为控制字符,它们可以有不同的解释方式。

最重要的解释是这些字符如何划线。在Unix(包括OS X)上以NL结尾,在Windows上以CRLF结尾,在旧的mac上以CR结尾。请注意,对于完全相同的字符,从LF到NL的含义的转换给出了Windows和Unix之间的差异,这也是为什么许多Windows程序使用CRLF来分隔而不是终止行。许多文本编辑器可以读取这三种格式中的任何一种格式的文件并在它们之间进行转换,但并非所有实用程序都可以。

表单提要不太常用。作为页面分隔符,它只能出现在行之间或文件的开始或结束处。

简而言之:

回车符(\r或0xD):从同一行开始控制。 换行(\n或0xA):控制从下一行开始。 表单提要(\f或0xC):控制从下一页开始。


更多的细节和更多的控制字符可以在下面的页面找到:控制字符

Apart from above information, there is still an interesting history of LF (\n) and CR (\r). [Original author : 阮一峰 Source : http://www.ruanyifeng.com/blog/2006/04/post_213.html] Before computer came out, there was a type of teleprinter called Teletype Model 33. It can print 10 characters each second. But there is one problem with this, after finishing printing each line, it will take 0.2 second to move to next line, which is time of printing 2 characters. If a new characters is transferred during this 0.2 second, then this new character will be lost.

于是科学家们找到了解决这个问题的方法,他们在每行后面加了两个结尾字符,一个是“回车”,这是告诉打印机将打印头移到左边。另一个是“换行”,它告诉打印机将纸张上移一行。

后来,计算机变得流行起来,这两个概念都用在了计算机上。当时的存储设备很贵,所以有科学家说每行末尾加两个字很贵,一个就够了,所以用哪个就有一些争论。

在UNIX/Mac和Linux中,'\n'被放在每行的末尾,在Windows中,'\r\n'被放在每行的末尾。这种使用的结果是,如果在Windows中打开,UNIX/Mac中的文件将显示在一行中。而Windows中的文件如果在UNIX或Mac中打开,则每行末尾会有一个^M。

when I was an apprentice in the Royal Signals many (50) years ago, teletypes and typewriters had "Carriage" with the printing head on them. When you pressed RETURN the Carriage would fly to the left. Hence Carriage Return (CR). You could just return the Carriage, but on mechanical typewriters, you'd use the Lever (much like a tremolo lever on an electric guitar) which would also do the Line Feed. Your next question is why would you not want the line feed? heh heh well in those days to delete characters we'd do a CR then use a Tip-ex-like paper in between the hammerheads and paper and type the same keys to over-write with white ink. Some fancy typewriters had a key you could press. So there you go.