博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
\r与\n有何差别,编码的时候应该怎样使用
阅读量:7038 次
发布时间:2019-06-28

本文共 835 字,大约阅读时间需要 2 分钟。

差别:

  • \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的博客

你可能感兴趣的文章
使用udev管理asmdisk执行/sbin/scsi_id不显示UUID解决方法
查看>>
Spring Security 学习之OpenID认证
查看>>
搭建开发使用的DNS服务器
查看>>
一般我只更新QQ空间和QQ微博
查看>>
JVM 内部运行线程介绍
查看>>
设计模式-策略模式
查看>>
一次jvm进程内存泄露问题的处理
查看>>
Centos7.2搭建SVN服务端完整配置
查看>>
基于zbus的MySQL透明代理(<100行)
查看>>
学习 Dialplan 1
查看>>
CentOS / Redhat EL 打开 sudo 功能
查看>>
我的友情链接
查看>>
每天一个linux命令(10):cat 命令
查看>>
使用Spring Interceptor实现URL访问校验
查看>>
关于awk多文件处理
查看>>
oracle分区索引和全局索引总结
查看>>
25本免费的Python电子书
查看>>
iOS新建target 管理类似的项目
查看>>
JSP学习
查看>>
改写webwind时遇到的问题
查看>>