Text 回车和换行命令

Text 回车和换行命令,text,newline,Text,Newline,有正确的回车顺序和换行顺序重要吗?对于文本编辑器来说,它们的出现顺序是否重要 例如,而不是 \r\n 这个 似乎Jeff已经准备好写一篇关于这个主题的文章了。有三种常见的换行格式: \r\n用于DOS\Windows世界 \适用于OSX之前的Mac世界 \n适用于Unix和类Unix世界 \n\r在我所知的任何地方都不是标准的,可能会导致编辑器认为它有一个Unix格式的文本文件,然后它会将奇怪的字符显示为文本 从历史上看,\r转换为回车符(CR,ASCII代码13),它指的是老式打字机,您

有正确的回车顺序和换行顺序重要吗?对于文本编辑器来说,它们的出现顺序是否重要

例如,而不是

\r\n
这个


似乎Jeff已经准备好写一篇关于这个主题的文章了。

有三种常见的换行格式:

  • \r\n用于DOS\Windows世界
  • \适用于OSX之前的Mac世界
  • \n适用于Unix和类Unix世界
\n\r在我所知的任何地方都不是标准的,可能会导致编辑器认为它有一个Unix格式的文本文件,然后它会将奇怪的字符显示为文本


从历史上看,\r转换为回车符(CR,ASCII代码13),它指的是老式打字机,您可以将回车符推回左侧,将光标返回到行首\n转换为换行符(LF,ASCII码10),将字符沿页面向下移动一个字符。虽然可能很有趣,但通常情况下这并不重要-只需使用适合当前平台的换行格式。

作为回车的后续操作,然后换行研究

当记事本找到字符CR+LF时,它会检测行尾。这是CP/M、MS-DOS和Win32使用的通用格式

Unix在找到LF时会检测到一个行尾。
苹果在发现CR时会检测到一条线的末端

从Uni代码的角度来看,有一个名为的控制字符只是为了使情况更加复杂

对于C编程语言,当您给它换行字符时,为什么它会写出回车+换行符?例如,printf(“hello World\n”)

C编程语言和Unix操作系统将换行符重新定义为换行符,目的是stdio库将换行符转换为实际转到该平台下一行开头所需的任何字符,例如Win32的回车+换行符

因此,当您在C/C++和Windows或Linux上编写新行字符(实际上是LF字符)时,studio库将确定该平台的该行末尾需要输出的输出格式

这在C程序中创建二进制文件或文本文件时很明显。如果指定正在编写二进制文件,studio库将保持该平台的输出格式不变。因此,在将数据写入文件时,如果遇到换行符,则不会为新行插入平台相关字符

尽管在这一切之后得出了结论

即使您确实遵循Win32的回车+换行规则,例如将以下内容作为纯二进制文件写入文件

MyText\n MyText\n MyText

假设它在文本编辑器中呈现为这样

我的文本 我的文本 我的文本

大多数编辑器将改为这样渲染

我的文本 我的文本 我的文本

造成混淆的主要原因是C标准使用新行字符表示两种不同的含义。首先,作为STIO库转换为操作系统新行格式的新行指示器(win32上为CR+LF,Linux上为LF,Apple上为CR)。其次,作为刚刚十六进制值行馈送


在Win3.1、95、98、XP上进行了10次修订并尝试了不同的方法之后,我得出了一个结论:我找不到一个单独使用CR和LF并可以在同一文档中组合使用它们的应用程序。大多数文本编辑器在点击单个CR或LF时会显示一个正方形。最聪明的文本编辑器会根据是否找到适合于相应平台的CR+LF/LF/CR来更改文件格式

大多数(如果不是所有的话)编辑器只关心向用户呈现新行,并且会在不同的文件格式之间切换。因此,如果你的作者很快就会使用lexer和string标记器,并担心何时会检测到新行。较低级别最好检测文件格式(CR+LF Win32、LF Linux、CR Apple)以增加行号。或者使用将考虑到这一点的ReadLine功能

至少令人费解的是,为什么IBM和Win32采用回车+换行符作为指示文本编辑器渲染新行的标准。事实上,它是冗余的。我找不到一个应用程序能够独立地呈现或使用回车符+换行符来表示它的实际名称


因此,如果你是一个大学生,写新的文本编辑器,让世界惊讶。自动检测文件格式,不必担心CR+LF的实际技术意义。

有许多换行符

例如。他们为您完成了大部分工作。

(很抱歉,这是有关此问题的搜索结果的主要结果)

在记事本++中,这很重要。当您从换行符
\n
开始,然后回车符
\r
时,换行符将在下一行结束。所以顺序应该是:crlf


使用两个控制字符时,传统的顺序是回车,然后换行

原因可以追溯到旧的ASR-33电传打字机

当向ASR-33发送回车时,如果打印头接近右边距,则需要超过十分之一秒的时间才能返回到左边距,并且当左边距被击中时,会有一点“反弹”

如果顺序是换行,然后是回车,则第一个打印字符可能出现在回车后的十分之一秒,因此可能会在页面的中间打印(作为涂抹)。但是,如果进纸是在回车之后进行的,则进纸所花费的时间为打印头完成行程提供了额外的时间

一些系统(我认为
\n\r
MyText MyText MyText MyText MyText MyText