在硬盘存储中、文件的存储没有换行的概念。
换行这个东西是字符编辑器进行的一种处理、是让人能看懂得。
机器可以一行读取
所以有了这两个特殊字符。\r \n
先来个demo
在文本编辑器nodepad++中
相对照一下ASCII
**回车 代码:CR
ASCII
码。/ r 。十六进制是0x0d
,回车的作用只是移动光标至该行的起始位置;\r
、的英文return
, 简写:CR
, 全称:Carriage Return
。**
对应ASCI
I码为十六进制的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就是线下兼容。
图一向上转、文字就换行了。打字键盘上也有换行键。
这是打字接近一行的时候。在最早打字是回到行首,是需要手动把轴轮复位的。打字机器是没有回到行首健位的。
下面这图是轴轮复位、对准打字位。