与之间的区别?

2024-03-28 11:12:31 发布

您现在位置:Python中文网/ 问答频道 /正文

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

特别是,在\n\r之间是否存在实际的差异?有地方应该用一个代替另一个吗?


Tags: 地方差异区别
3条回答

历史上,\n用于向下移动回车,而\r用于将回车移回页面的左侧。

两个不同的角色。

\n在Unix文本文件中用作行尾结束符

\r在Mac文本文件中用作行尾结束符

\r\n(即两者)用于终止Windows和DOS文本文件中的行。

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

但说真的,有很多:

  • 在Unix和所有类似Unix的系统中,\n是行尾的代码,\r没有什么特别的意思
  • 因此,在C语言和大多数以某种方式复制它(甚至是远程复制)的语言中,\n是行尾的标准转义序列(根据需要转换为/从操作系统特定的序列)
  • 在旧的Mac系统(pre-OS X)中,\r是行尾代码,而不是
  • 在Windows(和许多旧的OSs)中,行尾的代码是2个字符,\r\n,按这个顺序排列
  • 作为一个(令人惊讶的;-)结果(回到比Windows老得多的OSs),\r\n是互联网上文本格式的标准行尾
  • 对于像“终端”这样的机电电传打字机,\r命令机架向左返回,直到到达最左边的停止点(一个缓慢的操作),\n命令滚筒向上卷起一条线(一个更快的操作)——这就是为什么在\n之前总是有\r的原因,这样滚筒可以在马车还在向左转!-)维基百科有一个more detailed explanation
  • 对于字符模式终端(典型地模拟更老的打印终端,如上所述),在原始模式下,\r\n的行为类似(除了光标,因为这里没有滑架或滚柱;-)

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

相关问题 更多 >