在文本编辑器中,回车和换行符的顺序很重要吗?它们出现的顺序是否有所影响?
例如,与其是:
\r\n
这个页面中的内容只包含了一个段落标签。\n\r
看起来Jeff已经写了一篇非常好的有关该主题的博客文章。
在文本编辑器中,回车和换行符的顺序很重要吗?它们出现的顺序是否有所影响?
例如,与其是:
\r\n
这个页面中的内容只包含了一个段落标签。\n\r
看起来Jeff已经写了一篇非常好的有关该主题的博客文章。
传统的顺序是先回车,然后换行,当两个控制字符都被使用时。
这个原因可以追溯到旧的ASR-33电传打字机。
当向ASR-33发送回车指令时,如果打印头靠近右边界,它需要花费十分之一秒的时间返回到左边界,而且在撞到左边界时会有一点"弹跳"。
如果顺序是先换行,再回车,那么第一个打印字符可能会在回车之后的十分之一秒出现,从而可能会印在页面的中间(作为一条污渍)。但是如果换行在回车之后,则换行所花费的时间提供了额外的时间让打印头完成行程。
一些系统(例如旧的Xerox Sigma 7操作系统)采用换行然后回车的顺序,但是它们会在数据流中插入空字符来让打印头完成操作。
当涉及到更快的设备(例如一些早期的30字符每秒电传打字机)时,问题会变得更加严重,需要采用更复杂的策略。
还有一点,在用户输入中,回车符由用户按下回车键提供,而换行符必须由计算机提供。因此,通常“风格”是使普通打印行以换行符开头,并以回车符结尾。因此,提示用户输入只包含一个换行符,而用户输入以回车符结束。这种方案在一贯使用时效果很好,但当然并非总是如此。
\r\n
而不是\n\r
。 - Finesse有三种常见的换行格式:
\n\r 在我所知道的任何地方都不是标准,通常会导致编辑器将其视为Unix格式的文本文件,然后它将把奇怪的\r字符显示为文本。
历史上,\r表示回车符(CR, ASCII码13),这指的是旧式打字机,在这种打字机上,您需要将打印头推回到最左边,以将光标返回到该行的开头。 \n表示换行符(LF, ASCII码10),它将字符向下移动一页一个字符。虽然这可能很有趣,但通常并不重要 - 只需使用适合当前平台的换行格式即可。
MyText MyText MyText。
大多数编辑器将其呈现为以下形式。
MyText MyText MyText
混淆的原因主要是因为C标准在两个不同的含义上使用换行符\n。首先,它作为STIO库的换行指示符转换为操作系统的新行格式(Win32上为CR + LF,Linux上为LF,Apple上为CR)。其次,它表示十六进制值中的换行符。
大多数编辑器只关心向用户呈现新行,并会在不同的文件格式之间切换。因此,如果您很快就要编写词法分析器和字符串标记化器,并担心何时检测新行。最好是在较低的级别上检测文件格式(CR+LF Win32,LF Linux,CR Apple)以增加行号。或者使用ReadLine功能,该功能将考虑到这一点。
令人困惑的是,IBM和Win32采用回车符+换行符作为指示文本编辑器呈现新行的标准。事实上,这是多余的。我找不到一个单独使用回车符+换行符来呈现或使用其实际名称的应用程序。
所以,如果你是一名撰写新文本编辑器想要惊艳世界的大学生。自动检测文件格式,并不用担心CR+LF所给出的实际技术含义。
(抱歉打扰一下,但这是有关此问题的搜索结果的主要结果)
在Notepad++中,这很重要。当您以换行符\n
开头,然后是回车符\r
时,您的换行符将出现在下一行。因此,顺序应为:CR LF。