`
dcj3sjt126com
  • 浏览: 1871013 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

回车(CR)与换行(LF), '\r'和'\n'的区别

 
阅读更多

一:回车”(Carriage Return)和“换行”(Line Feed)起源

      首先,弄清两个概念:

                    回车CR-将光标移动到当前行的开头。
                    换行LF-将光标“垂直”移动到下一行。(而并不移动到下一行的开头,即不改变光标水平位置)

     在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33,Linux/Unix下的tty概念也来自于此)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
   于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。
   后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。
   Unix系统里,每行结尾只有“<换行>”,即"\n";Windows系统里面,每行结尾是“<换行><回车>”,即“\n\r”;Mac系统里,每行结尾是“<回车>”,即"\n";。一个直接后果是,Unix/Mac系统下的文件在 Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

二:区别

CR用符号'\r'表示, 十进制ASCII代码是13, 十六进制代码为0x0D

LF使用'\n'符号表示, ASCII代码是10, 十六制为0x0A

Dos和windows采用回车+换行CR/LF表示下一行,

而UNIX/Linux采用换行符LF表示下一行,

苹果机(MAC OS系统)则采用回车符CR表示下一行.

所以Windows平台上换行在文本文件中是使用 0d 0a 两个字节表示, 而UNIX和苹果平台上换行则是使用0a或0d一个字节表示.

注1:关于“回车键”的来历,还得从机械英文打字机说起。在机械英文打字机上,有一个部件叫“字车”,每打一个单词,“字车”就前进一格。当打满一行字符 后,打字者就得推动“字车”到起始位置,这时打字机会有两个动作响应:一是“字车”被归位,二是滚筒上卷一行,以便开始输入下一行,这个推动“字车”的动 作叫“回车”。

注2:这种差别在编程、不同OS之间传输纯文本时最需要注意。

分享到:
评论

相关推荐

    回车和换行的区别 回车和换行的区别

    其中,“回车”(Carriage Return,CR)和“换行”(Line Feed,LF)是两种用于表示文本行结束并开始新行的控制字符,它们在不同的操作系统中扮演着重要的角色,尤其是在文件的读写和兼容性方面。理解回车和换行的...

    回车与换行的区别详解

    回车与换行是计算机文本处理中的两个基本概念,它们起源于早期的电传打字机时代,以解决打印头定位和纸张移动的问题。在现代计算机系统中,这两个概念仍然有着重要的作用。 回车(Carriage Return),用字符`\r`...

    回车和换行区别

    在计算机中,“回车”(Carriage Return,CR)和“换行”(Line Feed,LF)是两个不同的概念。“回车”是指回到当前行的行首,而不会换到下一行,如果接着输出的话,本行以前的内容会被逐一覆盖。“换行”是指换到...

    关于回车和换行

    - **Windows系统**:使用“换行”(LF)和“回车”(CR)组合作为行结束符,顺序为CR LF,ASCII码分别为13和10。因此,在Windows系统中的文件,每行末尾包含CR LF两个字符。 - **早期的Mac系统**:最初采用“回车”...

    深入Windows下的回车是回车换行(\r\n)还是换行回车(\n\r)的详解

    Windows操作系统使用回车换行(\r\n)作为一行结束的标识,而Unix/Linux系统则只使用换行(\n)作为新的一行开始的标记,而在早期的Apple Mac OS系统中,回车(\r)就足够表示新行。 回车字符(CR,Carriage Return...

    回车,换行,tab,空格

    回车(Carriage Return, CR)和换行(Line Feed, LF)是文本文件中用于控制光标移动和文本格式的两个重要概念。在早期的打字机时代,这两个操作是通过物理动作来完成的。电传打字机(Teletype Model 33)在打印文本...

    UNIX回车换行与Windows下的区别

    与Windows不同,UNIX和Linux系统仅使用一个字符——换行(LF)来表示换行。这意味着在这些系统中,文本文件的每一行结束时只会有“\n”这一字符。这种设计更加简洁,也更符合现代电子设备的输入输出逻辑,无需像老式...

    回车键换行.rar回车键换行.rar

    - 在Windows系统中,通常使用两个字符来表示一个新行:先是回车(CR),然后是换行(LF),也就是所谓的CRLF(Carriage Return Line Feed)。 - 在Unix和Linux系统中,只使用一个换行(LF)字符来表示新行。 - 在旧...

    彻底搞清回车(0x0d)和换行(0x0a)

    彻底搞清回车(0x0d)和换行(0x0a) 在计算机世界中,回车符(0x0d)和换行符(0x0a)是两个非常重要的概念,但是很多人对它们的理解却存在一定的混淆。今天,我们就来彻底搞清这两个概念的区别和作用。 首先,...

    奇怪的回车换行问题

    回车(CR,Carriage Return)字符(0x0D)会将光标移动到当前行的起始位置,而换行(LF,Line Feed)字符(0x0A)则使光标下移一行。 2. **类Unix系统**(如Linux、Mac OS X等):这些系统仅使用`\n`(0x0A)作为新...

    回车和换行有什么区别?我们平时按下的Enter键是回车还是换行

    在那个时候,"回车"(Carriage Return,CR)是指将打印头移动回到一行文字的起始位置,而"换行"(Line Feed,LF)则是指将纸张向上滚动一行,准备开始新的一行。 在ASCII编码中,回车用`\r`表示,其ASCII码值为13...

    CR LF CRLF转换

    在Windows系统中,行尾通常由一个回车字符(CR,Carriage Return)和一个换行字符(LF,Line Feed)组成,合称为CRLF;而在Unix和Linux系统中,仅使用一个换行字符(LF)来表示行结束。Mac OS Classic系统则使用单独...

    windows 中 \r\n 区别于 类unix中的\n 疑问理解(crlf回车换行)

    在了解Windows系统中的回车换行符(\r\n)与类Unix系统中的换行符(\n)的区别之前,我们首先需要明白什么是回车(Carriage Return, CR)以及什么是换行(Line Feed, LF)。回车的意思是将光标移回到当前行的开头,而...

    unix系统下的回车.doc

    在UNIX系统中,回车(Carriage Return,CR)和换行(Line Feed,LF)是两个不同的概念,它们在文本处理和输出中扮演着关键角色。在C++或其他编程语言中,我们通常使用`\n`表示换行,`\r`表示回车。 在上述代码示例...

    windows和linux、Mac系统换行规则的区别.docx

    在早期的电传打字机时代,为了防止字符丢失,每行末尾添加了两个字符,一个是回车(CR),另一个是换行(LF)。然而,随着计算机的发展,不同的操作系统对这两字符的使用产生了分歧。 在Unix和Linux系统中,每行的...

    lotus domino 开发资料 换行符号

    在现代计算机中,回车符号常与换行符号一起使用,形成CR+LF组合,以实现真正的换行效果。 3. **CR+LF组合:** 在Lotus Domino中,特别是在处理多行文本字段或编写RICHTEXT类型的文档时,经常需要使用CR+LF(chr(13...

    txt文件换行转换mfc

    例如,Windows系统通常使用回车换行(CR LF,即"\r\n")组合作为一行的结束,而Linux和macOS则使用换行(LF,即"\n")作为新行标志。当在不同系统间传输或处理文本文件时,这些差异可能导致显示问题。因此,进行换行转换...

    把textarea中字符串里含有的回车换行替换成&amp;lt;br&amp;gt;的javascript代码

    在HTML中,回车符`\r`表示回车(Carriage Return, CR),换行符`\n`表示换行(Line Feed, LF),两者通常成对出现`\r\n`,特别是在Windows操作系统中。而在Unix/Linux系统中,通常只使用`\n`。在JavaScript中,由于...

    Messagebox()如何换行

    `vbCrLf`(等同于 `CHR(13) + CHR(10)`)则代表回车换行(CR LF,Carriage Return Line Feed),但在 `MessageBox()` 中,通常只用 `vbLf` 就足够了。 **方法二:字符串连接和 `Chr()` 函数** `Chr()` 函数可以将...

    串口字符输入LCD显示(自动换行)

    此外,我们还需要处理回车键(CR,Carriage Return)和换行键(LF,Line Feed)组合,确保正确处理文本流。 以下是一些实现步骤: 1. 初始化LCD:设置LCD的工作模式(4位或8位)、背光、显示方向等。 2. 设置光标...

Global site tag (gtag.js) - Google Analytics