小编典典

\n 和 \r 的区别?

all

\n(newline) 和\r(carriage return)有什么区别?

特别是和之间有什么 实际 区别吗?有没有应该使用一个代替另一个的地方?\n``\r


阅读 172

收藏
2022-03-03

共1个答案

小编典典

就 ascii 代码而言,它是 3——因为它们分别是 10 和 13;-)。

但说真的,有很多:

  • 在 Unix 和所有类 Unix 系统中,\n是行尾的代码,\r没有什么特别的意思
  • 因此,在 C 和大多数以某种方式复制它(甚至是远程)的语言中,\n是行尾的标准转义序列(根据需要转换为/从操作系统特定的序列转换)
  • 在旧的 Mac 系统(OS X 之前)中,\r是行尾代码
  • 在 Windows(和许多旧操作系统)中,行尾代码是 2 个字符,\r\n按此顺序
  • 作为(令人惊讶的;-)结果(回到比 Windows 更早的操作系统),\r\n是 Internet 上文本格式的标准行终止
  • 对于类似机电电传打字机的“终端”,\r命令托架向左返回,直到它碰到最左边的停止(缓慢操作),\n命令滚轮卷起一条线(更快的操作)——这就是你总是有的原因\r 之前 \n,这样滚轮可以在马车仍然向左移动时移动!-) 维基百科有更详细的解释
  • 对于字符模式终端(通常模拟上面更旧的打印终端),在原始模式下,\r并且\n行为类似(除了光标方面,因为 没有 托架或滚轮;-)

在实践中,在写入文本文件的现代上下文中,您应该始终使用\n(如果您使用的是奇怪的操作系统,例如
Windows,则底层运行时将转换它;-)。使用的唯一原因\r是,如果您正在写入字符终端(或更可能是模拟它的“控制台窗口”)并希望您编写的下一行覆盖您刚刚编写的最后一行(有时用于愚蠢的“ascii
动画” 例如进度条的效果)——不过,这在 GUI 的世界中已经过时了;-)。

2022-03-03