ChatGPT解决这个技术问题 Extra ChatGPT

“换行”和“回车”有什么区别?

如果有两个关键字,那么它们必须有自己的含义。所以我想知道是什么让它们与众不同以及它们的代码是什么。

看看这篇文章,它完美地清除了一切digital.ni.com/public.nsf/allkb/…

T
Tsunamis

换行表示向前移动一行。代码是 \n
回车 表示将光标移动到行首。代码是 \r

Windows 编辑器通常仍将两者的组合用作文本文件中的 \r\n。 Unix 大多只使用 \n

分离来自打字机时代,当您转动轮子移动纸张以更改行并移动马车以在行首重新开始打字时。这是两个步骤。


你会认为即使是旧打字机也应该考虑让 \n 代表两个步骤。
@ColacX 当需要覆盖当前行上的文本时,执行不带换行符的回车通常很有用。这适用于打字机和终端。
那么,在 Windows 中,行尾的正确顺序应该是 \n\r
@Delfino 不是真的。在机械打印机上,早点启动回车是有意义的,因为它速度较慢,并且在回车仍在移动时进纸。
不要忘记旧的 Mac 只使用了 \r
M
Monalisa Das

由于没有足够的奖励积分,我无法发表评论,我必须回答@Burhan Khalid 给出的正确答案。
在非常外行的语言中,Enter 键是回车和换行的组合。
回车将光标水平指向行首,换行将光标垂直移动到下一行。两者的组合给出你换行(\n) 效果。
参考 - https://en.wikipedia.org/wiki/Carriage_return#Computers


另外,电脑取代打字机——文字处理,就变成了断行和断段的区别。
这似乎只是在谈论 Windows。对于类 Unix 系统,这有点是正确的,但文本文件只包含换行符 \n,当它在屏幕上显示时,它显示为换行符 + 回车符。
B
Burhan Khalid

这两者都是从旧印刷时代开始的。

回车是从电传打印机/旧打字机时代开始的,从字面上看,马车会返回到下一行,并将纸张向上推。这就是我们现在所说的 \r

换行符 LF 表示该行的结束,它表示该行已经结束 - 但不会将光标移动到下一行。换句话说,它不会将光标/打印机头“返回”到下一行。

如需更多详细信息,请使用强大的 wikipedia 进行救援。


我相信回车是指移动到同一行的开头,而不是移动到下一行。打字机的类比是指垂直向下移动到下一行(换行)和水平返回到行的开头(回车)。 en.wikipedia.org/wiki/Carriage_return
M
Michael Otterbine

“换行”(0x0A 或 10)和“回车”(0x0D 或 13)都是单字节值。这些值是 LF/CR 的公认标准。大多数语言会将这些作为“字符”键入。您可以在任何标准的“ascii 表”中找到这些值。

例如,在 C# 中,字符串如下:

String str = "\n\r";

长度为两个字符(忽略字符串类型中所需的隐藏结束空字符“0x00”)。但是,您可以创建一个等效的字符类型数组,例如:

char[] c = new char[](){0x0A,0x0D}; // lf, cr