差别:

  • \r:

    • 全称:carriage return (carriage是“字车”的意思。打印机上的一个部件)
    • 简称:return
    • 缩写:r
    • ASCII码:13
    • 作用:把光标移动到当前行的最左边
  • \n: 
    • 全称:new line
    • 别名:line feed
    • 缩写:n
    • ASCII码:10
    • 作用:把光标向下移动一行

不同操作系统如何表示“回车+换行”(即一行的结束):
  • Unix、Linux:\n表示回车+换行,\r没什么意义
  • Windows、DOS:\r\n表示回车+换行。顺序不能变
  • Mac:\r表示回车+换行

历史:

机械的英文打字机:在打字机上。有一个部件叫“字车”(carriage),每输入一个单词,“字车”就前进一格。

当输满一行后。使用者就要推动“字车”到起始位置。这时打字机会有两个动作:“字车”归位、滚筒(roller)上卷一行(相当于“字车”下移一行),以便開始输入下一行。

这两个动作合起来叫做“回车”,相当于如今键盘中的“Enter”键。

电传打字机:(Teletype Model 33,Linux/Unix下的tty概念也来自于此)每秒钟能够打10个字符。

可是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好能够打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。

于是,研制人员想了个办法解决问题,就是在每行后面加两个表示结束的字符。一个叫做“回车(return)”。告诉打字机把打印头定位在左边界;还有一个叫做“换行(newline)”。告诉打字机把纸向下移一行。后来这两个动作被缩写为“\r”和“\n”。


编程语言中怎样使用:
由于Unix中是用“\n”表示一行的结束。所以在C语言(以及其它C语言的继承者,比方C++, Java)中能够直接使用“\n”,在不同的操作系统中会被自己主动转换成对应的字符(比方在Windows中会被转成“\r\n”)。

(原创文章,转载请注明转自Clement-Xu的博客)

最新文章

  1. Delphi_06_Delphi_Object_Pascal_基本语法_04
  2. 萌新笔记——C++里创建 Trie字典树(中文词典)(二)(插入、查找、导入、导出)
  3. 1-Spark高级数据分析-第一章 大数据分析
  4. user profile services提示“BAIL: MMS(7116): sql.cpp(8490): 0x80231334 (The sql connection string has unsupported values.)”解决办法
  5. delphi 高版本可执行程序减小的办法
  6. postgresql基本操作:查看数据库、索引、表、表空间大小
  7. 层次数据结构字符串处理,split函数使用
  8. c#操作剪切板
  9. 【转】编译Android系统源码和内核源码
  10. [XenServer] XenServer修改IP 以及 root密码
  11. (转)Javascript面向对象编程(二):构造函数的继承(作者:阮一峰)
  12. 20160125--Spring
  13. UIScreen的 bound、frame、scale属性
  14. ONE WIRE
  15. nginx多域名配置
  16. Spark中的wordCount程序实现
  17. Python之shutil模块(复制移动文件)
  18. springboot学习之构建简单项目搭建
  19. vue中滚动事件绑定的函数无法调用问题
  20. JAVAORM框架之Mybatis (Ibatis) 详解

热门文章

  1. flutter 快捷键
  2. UVALive 5097 Cross the Wall
  3. memcahced部署
  4. 简单的INSERT语句
  5. 【MySQL笔记】数据定义语言DDL
  6. yii2.0权限控制 ACF权限
  7. ToggleButton控件,Switch控件
  8. windbg --sqlserver 实例 转
  9. Linux下交叉编译gdb和gdbserver
  10. mq使用经验