\r,回车符,回到行首;\n,换行符,换到下一行。
\r\n的由来
计算机还没出现之前,有一种叫做电传打字机的玩意,每秒可以打10个字符,即0.1秒打一个字符。
但它有个问题:打完一行换行的时候,就要用去0.2秒,正好是打两个字符的时间。如果这0.2秒里,刚好有新的字符传过来,这个字符就会被丢掉。
于是,研制人员就想了办法解决这个问题:在每行后面加个两个表示结束的字符。一个就是\r,回车符,告诉打字机把打印头定位到左边界;另一个叫\n,换行符,告诉打字机把纸向下移一行。
有时候\r\n,有时候\n?
计算机发明后,\r和\n就用到了计算机上。那是,储存器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就行了。于是,就出现了分歧。
Unix系统:每行\n结尾;
Mac系统:每行\r结尾;
Windows系统:每行\r\n结尾;
一个直接的后果是,Unix/Mac系统下的文件在Windows下打开的话,所有文字会变成一行;
Windows系统下的文件在Unix/Max下打开的话,每行结尾可能会多出一个^M符号。