回车和换行

回车(carriage return)和换行(line feed)的由来与区别。
在计算机未出现之前,有一种机械英文打字机,“车”指的是纸车,带着纸一起左右移动的模块,当开始打第一个字时,纸车要被拉到最右边,上紧弹簧,随着打字,弹簧把纸车拉回去,所以每打完一行,纸车就完全收回去了,这叫做回车。
打字机的左边有个“把手”,往下扳动一下,会把纸上移一行,这叫做换行,上面是回车和换行的概念。
后来又有了电传打字机,每秒钟可以打10个字符,打完换行则需要0.2秒,正好可以打2个字符,如果正好在这0.2秒内有新的字符传来,那么这个字符将会丢失。于是,研制人员想了个办法,在每行后面加两个表示结束的字符,就是“回车”和“换行”,“回车”告诉打字机把打印头定在左边界,“换行”告诉打字机把纸移到下一行。
后面发明了计算机,这两个概念也被应用到计算机中,但由于当时存储器太贵,一些科学家认为在每行结尾加两个字符太浪费,加一个就可以,所以由此产生分歧。
Unix系统里,每行结尾只有"<换行>",即"\n";Windows系统里,每行结尾是"<回车><换行>",即"\r\n";Mac系统里,每行结尾是"<回车>"。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

你可能感兴趣的:(回车和换行)