\n \r 换行回车的区别 2018-10-30

参考:
http://blog.chinaunix.net/uid-12038475-id-3766827.html
http://www.javashuo.com/article/p-klsxiydf-ho.htmlhtml

1.定义

回车:\r , 即 Carriage Return,控制字符能够写成 CR, 做用是将光标从新回到本行开头 ^M 是ascii中的'\r', 回车符,是16进制的0x0D,八进制的015,十进制的13;^M在vi编辑器中能够使用Ctrl+ v + m三个键打出来
换行:\n , 即 New line,控制字符能够写成LF,即 line feed,即光标移到下一行(这个操做是直接往下一行,不回到行首);其ascii代码是10,十六进制为0x0Awindows

2. 三大系统关于 换行 这一动做的区别:

  • Windows使用两个字符\r\n( 0x0D 和 0x0A )表示,即回到行首和下一行两个动做来实现换行
  • Unix系统里,只使用一个字符\n来实现换行,即一个字符实现上面两个动做
  • Mac系统中,只使用一个字符\r来实现换行,即一个字符实现上面2个动做。
    这样形成的后果是,Mac/Unix系统下面的文件在Windows下面打开时,因为Mac/Unix系统只有一个字符来表示换行,所以,会致使全部文件都出如今一行;而windows里的文件在Unix下打开,在每行的结尾会多出一个 ^M 字符

3. 历史:

在计算机尚未出现之 前,有一种叫作电传打字机(Teletype Model 33,Linux/Unix下的tty概念也来自于此)的玩意,每秒钟能够打10个字符。可是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正 好能够打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
因而,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫作“回车(return)”,告诉打字机把打印头定位在左边界;另外一个叫作“换行(newline)”,告诉打字机把纸向下移一行。这就是“换行”和“回车”的来历编辑器

相关文章
相关标签/搜索