有什么区别\n(newline)和\r(马车返回)?

特别是有什么实际的 之间的差异\n\r?是否有一个应该使用的地方代替另一个?

答案

就ASCII代码而言,这是3-由于它们分别为10和13 ;-)。

但是说真的,有很多:

  • 在UNIX和所有类似Unix的系统中,\n是线结束的代码,\r没什么特别的
  • 结果,用C和大多数语言以某种方式复制它(甚至是远程),\n是线结束的标准逃逸序列(根据需要转换为/从OS特异性序列)
  • 在旧的Mac系统(Pre-OS X)中,\r是线结束的代码
  • 在Windows(以及许多旧的IS)中,行末端的代码为2个字符,\r\n,按这个顺序
  • 作为(令人惊讶的;-)结果(回到比Windows大得多的OSS),\r\n是 Internet 上文本格式的标准行终止符
  • 用于机电电视式"终端",\r命令马车向左走,直到击中最左边的停止(缓慢操作),\n命令滚子卷起一行(一个更快的操作) - 这就是您始终拥有的原因\r before \n,以便在马车仍向左移动时滚筒可以移动! - )Wikipedia有一个更详细的解释
  • 对于字符模式终端(通常像上面的均匀打印),以原始模式,\r\n采取类似的行动(在光标方面除外,is没有马车或滚筒;-)

实际上,在写作文本文件的现代背景下,您应始终使用\n(基础运行时,如果您在怪异的操作系统上,例如Windows ;-)。使用的唯一原因\r如果您正在写入字符终端(或更可能模仿它的"控制台窗口"),并且希望您写的下一行覆盖您刚刚写的最后一个(有时用于愚蠢的" ASCII动画"效果酒吧) - 不过,这在吉斯的世界中变得非常过时;-)。

来自: stackoverflow.com