什么是 \r",为什么要与 \n 一起使用?

23
这两个字符串有什么不同?
"first line \n second line" 和 "first line \r\n second line"。

我看到了它......但我不知道\r在\n之前是什么。 - Danny Fox
3
StackOverflow可能会让你苦不堪言。在类Unix环境中,'\n'用于表示换行。但是在Windows中,通常需要使用'\r\n'。从技术上讲,Windows在这里更准确,因为'\n'只是简单地提前一行,而'\r'则将光标返回到行首。Unix通常忽略了这个细节。 - Matt Greer
2
如果你澄清你的问题(使用编辑链接)为“什么是\r,并且为什么要与\n一起使用?”那么你将拥有一个更合理的问题,人们不会对其进行投票。由于你现在的问题读起来像是你看不到一个字符串中的\r。 - jfriend00
@jfriend00 当然我看到了第二个例子中的 \r,但是我不明白它为什么很重要。 - Danny Fox
Danny - 我想指出的是,如果你编辑问题并添加真正的问题要点(你想知道\r是什么以及为什么会使用它),那么人们就不会再向下投票或投票关闭你的问题。看看你的问题的第一个评论。他们嘲笑你没有说明真正的问题是什么。 - jfriend00
3个回答

38

\r - 回车符
\n - 换行符

\r\n 通常优先使用于 \n,因为它在Unix和Windows系统中都能正常显示。

回车符仅将光标返回到同一行的开头(而不是进入下一行),而换行符则开始新的一行。

注意:(将鼠标悬停在下面的灰色框上查看)

如果你曾经用过打字机,请试着使用它。这是一件很少有人能够体验到的精美工程。


5
正确。回车符(\r)是对打字机的“叮”声回到起始位置的方式的引用。写作者接着会插入一个新行(\n)来避免覆盖之前的行。Windows开发人员喜欢这个想法,决定采用\r\n作为创建新行的方式。Linux认为这是多余的,并且去掉了\r字符。 - Honoki
1
@Honoki 不完全如此,计算机也经历了文本终端阶段,其中光标充当了字符间距,CR只是将其返回到行的开头,而LF只是使其向下移动一行。那时两者都是必需的。然后Unix通过将LF的含义转化为抽象的“新行”来摆脱它,而DOS和Windows则保持愚蠢,需要两个字符。即使在独立的CR或LF毫无意义且无作用的图形编辑器中也是如此。我不知道Windows 10怎么样,但在Windows 7中,记事本仍然需要这两个字符,而且根本读取不了没有换行符的Unix文件。 - Deuxis

5

0

这是针对不同操作系统的换行符表示。在Windows中,换行符为\r\n,在Linux中则为\n。


1
反斜杠要倒过来写,\\ - Matt Greer
这两个字符串相同吗? - Danny Fox
不,因为\r是另一个字符。在Unix环境中通常不需要它。这两个字符串具有等效的内容,但不同的字符。 - Matt Greer
@MattGreer不,它们有不同的内容,因为它们具有不同的字符,但语义意义通常相同。 - user207421
1
实际上,\r会将光标移动到特定句子的开头,而\n会在新行中写入内容。因此,在\n之前添加\r将确保无论上面写了什么内容,都会将该内容写入新行。 - Vaishnavi Patel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接