首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >\ n和\ r之间的区别?

\ n和\ r之间的区别?

提问于 2017-12-20 05:24:22
回答 2关注 0查看 491

\n(换行)和\r(回车)有什么区别?

特别是和之间有什么实际的区别?有没有哪个地方可以用来代替另一个呢?\n\r

回答 2

akjok54

发布于 2017-12-20 05:47:26

他们间的区别其实是个回车换行的问题

先来段历史

回车”(Carriage Return)和“换行”(Line Feed)这两个概念的来历和区别。

代码语言:txt
AI代码解释
复制
符号        ASCII码        意义
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
\n               10          换行
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
\r                13            回车CR

在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33,Linux/Unix下的tty概念也来自于此)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。

于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。

后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。

在Windows中:

'\r' 回车,回到当前行的行首,而不会换到下一行,如果接着输出的话,本行以前的内容会被逐一覆盖;

'\n' 换行,换到当前位置的下一行,而不会回到行首;

Unix系统里,每行结尾只有“<换行>”,即"\n";Windows系统里面,每行结尾是“<回车><换行>”,即“\r\n”;Mac系统里,每行结尾是“<回车>”,即"\r";。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

例:

代码语言:txt
AI代码解释
复制
$ echo -en '12\n34\r56\n\r78\r\n' > tmp.txt

以往V

发布于 2017-12-20 05:46:51

\r与\n合起来就是回车换行的意思,回车是将光标移到当前行的行首;换行是将光标移到当前行的下一行,但还是同一列,不会回到行首。它们合起来可以将光标移到下一行的行首,也就是回车并换行。但在不同的系统中它们的功能也不太相同。比如在windows里,\r\n表示回车换行;但在linux中\n就代表回车换行。这也是为什么在linux下用vim打开windows编辑的文件会发现在每一行尾都有个^M字符的原因。

和开发者交流更多问题细节吧,去 写回答
相关文章
\r和\n有什么区别
回车符’\r’   ASCII值为13,回车(return oldline begin)
灯珑LoGin
2022/10/31
1.2K0
文本或代码中 \n 和 \r 的区别
在 ASCII 码中,我们会看到有一类不可显示的字符,叫控制字符,其中就包含\r 和 \n 等控制字符。
DeROy
2020/12/02
4.9K0
回车(CR)与换行(LF), '\r'和'\n'的区别
换行LF-将光标“垂直”移动到下一行。(而并不移动到下一行的开头,即不改变光标水平位置)
MCU起航
2021/07/16
4K0
\r和\n的区别到底在哪里???
详细见:https://blog.csdn.net/xiaofei2010/article/details/8458605
种花家的奋斗兔
2020/11/13
6210
\r和\n的区别到底在哪里???
换行符 '\n' 和 回车符 '\r' 的区别?
-----------------------------------------------------------------------------
黑泽君
2018/10/11
68K0
很少人真正了解 \n 和 \r 有什么区别!
在ASCII码中,我们会看到有一类不可显示的字符,叫控制字符,其中就包含\r 和 \n 等控制字符。
二哥聊运营工具
2021/12/17
18.4K1
很少人真正了解 \n 和 \r 有什么区别!
HTTP和HTTPS 之间的区别
PS: https就是http和TCP之间有一层SSL层,这一层的实际作用是防止钓鱼和加密。防止钓鱼通过网站的证书,网站必须有CA证书,证书类似于一个解密的签名。另外是加密,加密需要一个密钥交换算法,双方通过交换后的密钥加解密。
全栈程序员站长
2022/07/19
1.5K0
associateBy 和 groupBy 之间的区别
函数associateBy和groupBy构建来自由指定键索引的集合的元素的映射。key在keySelector参数中定义。
一个会写诗的程序员
2019/08/08
2.4K0
Java和JavaScript之间的区别
我们将在本文中比较Java语言和JavaScript语言。 JavaScript由Netscape开发。 它最初是用于客户端的脚本语言,后来又用作客户端和服务器脚本的语言。 Java由James Gosling由Sun Microsystems开发。 这些天来,JavaScript在服务器中以node.js的形式使用。 Java和JavaScript之间在程序编码,编译和运行方式方面存在许多差异。
全栈程序员站长
2022/09/08
2.1K0
Java和JavaScript之间的区别
Statement 和 PreparedStatement之间的关系和区别
大家好,又见面了,我是你们的朋友全栈君。 Statement 和 PreparedStatement之间的关系和区别. 关系:PreparedStatement继承自Statement,都是接口 区别:PreparedStatement可以使用占位符,是预编译的,批处理比Statement效率高 详解: 1、PreparedStatement:表示预编译的 SQL 语句的对象。 接口:public interface PreparedStatement extends
全栈程序员站长
2022/08/11
1.8K0
Statement 和 PreparedStatement之间的关系和区别
var、let和const之间的区别
即 let和 const不需要先声明,再使用,否则会报错,而 var不需要先声明再使用,可以先使用后声明,不会报错,不过赋值的时候,值一直是 undefined
赤蓝紫
2023/03/11
1.4K0
var、let和const之间的区别
理解 CI 和 CD 之间的区别
大家好,我是 ConardLi,今天我们来看一个研发中非常常见的概念,CI/CD,你有了解过它们的区别吗?(本文由 wangjie 翻译)
ConardLi
2021/12/21
1.6K0
理解 CI 和 CD 之间的区别
PAAS、IAAS和SAAS之间的区别
你一定听说过云计算中的三个“高大上”的你一定听说过云计算中的三个“高大上”的概念:IaaS、PaaS和SaaS,这几个术语并不好理解。不过,如果你是个吃货,还喜欢披萨,这个问题就好解决了!好吧,其实你
chenchenchen
2022/05/07
2.2K0
PAAS、IAAS和SAAS之间的区别
0.0.0.0、127.0.0.1和localhost之间的区别
localhost localhost其实是个域名,而不是一个ip地址。之所以我们经常把localhost与127.0.0.1认为是同一个是因为我们使用的大多数系统上都默认localhost指向了127.0.0.1这个地址。 在linux系统中,/ets/hosts文件中都会有如下内容:
用户1679793
2019/12/31
4.3K0
求m到n之间的素数和(函数)python
输入两个正整数m和n(m<n),求m到n之间(包括m和n)所有素数的和,要求定义并调用函数isprime(x)来判断x是否为素数(素数是除1以外只能被自身整除的自然数)。
叶茂林
2023/07/30
2800
【技术分享】Spark和Hadoop之间的区别
大数据开发中Spark和Hadoop作为辅助模块受到了很大的欢迎,但是Spark和Hadoop区别在哪?哪种更适合我们呢,一起了解一下它们之间的区别。
加米谷大数据
2019/01/08
1K0
tali -f 和 tail -F 之间的区别
tail -f      等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止
西湖醋鱼
2020/12/30
1.2K0
String、StringBuffer、StringBulider之间的联系和区别
首先,我们大概总体的解释一下这三者的区别和联系 String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间。 StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象。 StringBuilder和StringBuffer类功能基本相似,唯一的区别就是StringBuilder不是线程安全的。 下面具体看看: 1. String 类  String的值是不可变的,这就导致每次对Strin
Dato
2018/04/17
1K0
JVM,JRE,JDK之间的区别和联系
Java Api是Java的应用程序接口,里面有很多写好的Java Class,包含一些重要的语法结构以及基本图形,网络和文件IO,我们可以直接调用。
入门笔记
2022/06/02
9620
JVM,JRE,JDK之间的区别和联系
点击加载更多

相似问题

malloc和calloc之间的区别?

2409

map和Ruby之间的区别?

2371

PostgreSQL:文本和varchar之间的区别?

22.5K

在SQL中EXISTS和IN之间的区别?

2443

C#与==和Equals()之间的区别?

2622
相关问答用户
腾讯云TDP | TDP会员擅长3个领域
平安资管 | 架构师擅长4个领域
擅长3个领域
擅长5个领域
腾讯云TDP | KOL擅长5个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档