关于回车(carriage return)与换行(line feed)这两个概念一直不是很理解,但看了阮老师的一篇文章后,豁然开朗,这么久了依旧很经典。
参考文章:http://www.ruanyifeng.com/blog/2006/04/post_213.html
(1)历史背景
在计算机出现之前,打字是通过英文打字机或者电传打字机(以下简称:打字机)进行的,类似下图的东西:
打字机每秒钟可以打 10 个字符,但有个问题是在打完一行后换行时,需要 0.2 秒的时间,而这个时间可以打两个字符,如果这时候有新的字符传过来,那么就会丢失对应的字符。
为了解决这个问题,研制人员想出在换行时,每行的末尾加上两个字符,正好弥补那 0.2秒的时间。这两个字符分别是:
“回车符”:告诉打字机把打印头定位在左边界。即把图中打字的打印头(又称纸车)移动动最左边,因为打字时,打印头从左一直打到右,要重新打,就要回到最左边,就相当于“回车”
“换行符”:告诉打字机把纸移动到下一行。即把图中的纸向上移动,从而换行
(2)现在的使用
计算机发明后,回车和换行(准确来说应该叫“回车符 \r ”和“换行符 \n ”)也应用于计算机,只是计算机并不存在那 0.2 秒的换行时间,用回车和换行主要是为了标识文字换行了,所以只要能标识文字换行了,只用一个字符也可以。
最开始由于计算机的存储器特别贵,在每行都加上两个字符太浪费了,所以出现了分歧,不同系统采用的换行标识不一样,如下:
Windows系统:\r\n
Unix系统:\n
Mac系统:\r
所以系统的文件在不同的系统打开时,文字的换行展示效果可能不一样
(3)术语的说明和注意事项
我们通常讲的文字的“换行”,也就是指文字换到下一行了
计算机系统中的“换行”,准确来说是“换行符”,即\n
计算机系统中的“回车”,准确来说是“回车符”,即\r
计算机键盘上的“回车键 Enter ”,在按下时,实现了文字的换行,既打印了回车符 \r ,又打印了换行符 \n,也就是【硬回车】。
当同时按键盘上的“shift”和“Enter”时,文字看起来换行了,实际上还是属于一行,也就是【软回车】。相当于一行文字,页面展示不下了,只有系统自动换行展示才看得完,在 word 中这些文字就属于一个段落。