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