在硬盘存储中、文件的存储没有换行的概念。
换行这个东西是字符编辑器进行的一种处理、是让人能看懂得。
机器可以一行读取
所以有了这两个特殊字符。\r \n
先来个demo

在文本编辑器nodepad++中

相对照一下ASCII

**回车 代码:CR ASCII码。/ r 。十六进制是0x0d,回车的作用只是移动光标至该行的起始位置;\r 、的英文return, 简写:CR, 全称:Carriage Return。**
对应ASCII码为十六进制的0x0D,十进制的13
**换行 代码:LF ASCII码。/ n ,十六进制是0x0a,换行至下一行行首起始位置;\n 、得英文newline,简写:LF,全称:Line Feed。**
对应ASCII码为十六进制的0x0A,十进制的10。
在系统中的表现
在Windows系统下,这两个字符就是表现的本义,所以你会看到有些程序员写的printf之类的函数代码中,最后包含\r\n,就是这个回车且换行的意思;
在UNIX类系统,换行\n就表现为光标下一行并回到行首、在MAC上,\r就表现为回到本行开头并往下一行。
所以,简单来说,就是一般的ENTER键:
在windows系统下 = \r + \n
在Unix类系统(Linux,…)下 = \n
在Mac系统下 = \r
历史来源
键盘的来源的是来自源于打字机。但当时是没有电脑的。键盘的来源就是打字机。\r\n就是线下兼容。

图一向上转、文字就换行了。打字键盘上也有换行键。

这是打字接近一行的时候。在最早打字是回到行首,是需要手动把轴轮复位的。打字机器是没有回到行首健位的。
下面这图是轴轮复位、对准打字位。
