【计算机】回车与换行的区别-CRLF

2021/11/08 16:53:07

来历

在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打 10 个字符。

但是它有一个问题,就是打完一行换行的时候,要用去 0.2 秒,正好可以打两个字符。要是在这 0.2 秒里面,又有新的字符传过来,那么这个字符将丢失。

于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。

一个叫做回车(carriage return,CR),告诉打字机把打印头定位在左边界;

另一个叫做换行(line feed,LF),告诉打字机把纸向下移一行。

在不同操作系统中的区别

  • Unix 系统里,每行结尾只有“<换行-LF>”,即“\n”。
  • Windows 系统里面,每行结尾是“<回车-CR><换行-LF>”,即“\r\n”。
  • Mac 系统里,每行结尾是“<回车-CR>”,即“\r”。

需要注意的是:在 Windows 系统中回车键被当做\r\n 的组合来使用,当我们从键盘输入回车键时,Windows 系统会把回车键当做\r\n 来处理,Unix 系统只会当做\n 来处理。

不管在什么系统中,都可以用\n 来作为一行输入结束的标记,只是在编程时我们需要注意,在 Windows 系统中我们会读到\r 这个字符,我们必须把\r 和正常输入的字符区别开来。

CR & LF & CRLF

CR 就是 carriage return,也就是回车,编码为\r。

LF 就是 line feed,也就是换行,编码为\n。

CRLF 就是 CR + LF,编码为\r\n。

参考

回车符和换行符区别open in new window