`
dcj3sjt126com
  • 浏览: 1868330 次
  • 性别: 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)字符来表示新行。 - 在旧...

    奇怪的回车换行问题

    回车(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")作为新行标志。当在不同系统间传输或处理文本文件时,这些差异可能导致显示问题。因此,进行换行转换...

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

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

    Messagebox()如何换行

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

    换行FF不兼容

    在Windows系统中,换行通常表示为两个字符:回车(CR, \r)和换行(LF, \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中,由于...

Global site tag (gtag.js) - Google Analytics