Pulpcode

捕获,搅碎,拼接,吞咽

0%

换行和回车的区别

其实在大三的时候,研究输出,就发现换行和回车其实并不相同,当时就想写一篇博客,只是忘了。最近又看到这个问题,所以打算写一篇博客,记录一下。

newline-and-return

如果你看过一些近代电影,一定会见过这样的打字机,这种打字机,通过敲击键盘上的某一个按键,将按键对应的字符的字模会打击到色带上,从而在纸或其他媒介上打出该字符。而且每次字符的敲打,打字机都会把纸向左移动,以备打印下一个字符。而且有些电视剧上的打字机还需要自己推回到开头,准备下一行。

那么这样就很好理解,回车和换行了:对于这样一个打字机,回车的动作是打字机把打印头定位在左边界,而换行的动作是让打字机把纸向下移一行。,对应的字符,\r就是回车,\n就是换行。

后来计算机发明了,这两个概念也就被使用到了计算机上。而那时的存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是乎,就有了我们今天所看到的分歧。

Unix: 以\n结尾。
Windows: 以\n\r结尾。
Mac: 以\r结尾。

而这也就是为什么,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行,而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。