#原义
回车,缩写为CR(Carriage Return) ,这个名字可能是指打印头运作起来像奔跑的马车
换行,缩写为LF(Line Feed) 被吃掉了一行
#来历
计算机还没有被发明出来之前,一种叫做电传打字机(Teletype Model)的机器被发明出来了,这个打字机每秒钟可以打10个字(即打印一个字只需要0.1s)。但是它有一个问题,就是每打完一行就要用去0.2秒用来换行,如果在这0.2秒的换行时间中又有新的字符传过来,那么这个字符将丢失,不能被打印出来。
于是,研发人员想了个办法,换行的这0.2s刚好可以打两个字符,于是就要求在每行文字后面加两个表示结束的字符。一个叫做"回车",告诉打字机把打印头定位在开始位置;另一个叫做"换行",告诉打字机把纸向下移一行。
这就是"换行"和"回车"的来历。
#区别
后来,计算机发明了,这两个概念也就被运用到了计算机中。那个时候存储器很贵,一些人认为在每行文字的结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。当我们使用不同的操作系统按下键盘上的Enter键时,输入的字符是不一样的
*Unix系统里,输入"<换行>",即"\n"
*Windows系统里,输入"<回车><换行>",即"\r\n"
*Mac系统里,输入"<回车>",即"\r"(现在已改为'\n')
引起的一个问题就是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;
而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。