`
diecui1202
  • 浏览: 98756 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

回车(CR)与换行(LF)

    博客分类:
  • dzh
阅读更多

一、“回车”(Carriage Return)和“换行”(Line Feed)的来历

 

      在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33,Linux/Unix下的tty概念也来自于此)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。

      于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。这就是“换行”和“回车”的来历。

 

二、计算机里的“回车”与“换行”

请看下面这段程序:
public class CRLFTest {

    public static void main(String[] args) {
        // 1. 中间包含\n
        String str = new String("Hello, World! \nThis is new line.");
        byte[] bytes = str.getBytes();

        System.out.println(str);
        for (int i = 0; i < bytes.length; i++) {
            System.out.print(bytes[i] + " ");
        }
        System.out.println();

        // 2. 中间包含\n\r
        str = new String("Hello, World! \n\rThis is new line.");
        bytes = str.getBytes();

        System.out.println(str);
        for (int i = 0; i < bytes.length; i++) {
            System.out.print(bytes[i] + " ");
        }
        System.out.println();

        // 3. 中间包含\r
        str = new String("Hello, World! \rThis is new line.");
        bytes = str.getBytes();

        System.out.println(str);
        for (int i = 0; i < bytes.length; i++) {
            System.out.print(bytes[i] + " ");
        }
        System.out.println(new Date());
    }
}
 以下是该程序在Windows, Linux, Mac三种环境下的运行结果:
1、Windows下的运行结果:
Hello, World! 
This is new line.
72 101 108 108 111 44 32 87 111 114 108 100 33 32 10 84 104 105 115 32 105 115 32 110 101 119 32 108 105 110 101 46 
Hello, World! 

This is new line.
72 101 108 108 111 44 32 87 111 114 108 100 33 32 10 13 84 104 105 115 32 105 115 32 110 101 119 32 108 105 110 101 46 
Hello, World! 
This is new line.
72 101 108 108 111 44 32 87 111 114 108 100 33 32 13 84 104 105 115 32 105 115 32 110 101 119 32 108 105 110 101 46 Wed May 25 11:28:42 CST 2011
 2、Linux下的运行结果:
Hello, World! 
This is new line.
72 101 108 108 111 44 32 87 111 114 108 100 33 32 10 84 104 105 115 32 105 115 32 110 101 119 32 108 105 110 101 46 
Hello, World! 
This is new line.
72 101 108 108 111 44 32 87 111 114 108 100 33 32 10 13 84 104 105 115 32 105 115 32 110 101 119 32 108 105 110 101 46 
This is new line.
72 101 108 108 111 44 32 87 111 114 108 100 33 32 13 84 104 105 115 32 105 115 32 110 101 119 32 108 105 110 101 46 
 3、Mac下的运行结果:
Hello, World! 
This is new line.
72 101 108 108 111 44 32 87 111 114 108 100 33 32 10 84 104 105 115 32 105 115 32 110 101 119 32 108 105 110 101 46 
Hello, World! 

This is new line.
72 101 108 108 111 44 32 87 111 114 108 100 33 32 10 13 84 104 105 115 32 105 115 32 110 101 119 32 108 105 110 101 46 
Hello, World! 
This is new line.
72 101 108 108 111 44 32 87 111 114 108 100 33 32 13 84 104 105 115 32 105 115 32 110 101 119 32 108 105 110 101 46 
 从上面的运行结果可以看出:
1、Windows与Mac的结果一致;
2、三种平台下,\n的实际结果是“回车” + “换行”;
3、Windows、Mac下的\r也是“回车” + “换行”,但是Linux下,\r却是回到当前行首,会抹到以前的输出结果;

 

分享到:
评论

相关推荐

    回车与换行的区别详解

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

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

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

    回车和换行区别

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

    关于回车和换行

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

    回车,换行,tab,空格

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

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

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

    UNIX回车换行与Windows下的区别

    这种格式源自于老式打字机的操作逻辑,其中回车(CR)使打印头返回到行首,而换行(LF)则推进纸张,准备开始新的一行打印。因此,在Windows系统中,文本文件中的每一行结束都会被标记为“\r\n”。 #### UNIX/Linux...

    奇怪的回车换行问题

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

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

    回车字符(CR,Carriage Return)的历史可以追溯到打字机时代,它的作用是将打印头移动到一行的起始位置。换行字符(LF,Line Feed)则是让纸张下移一行。在早期的计算机系统中,这两个字符通常分开使用,而在现代...

    CR LF CRLF转换

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

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

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

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

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

    lotus domino 开发资料 换行符号

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

    unix系统下的回车.doc

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

    换行移除.rar

    换行符是文本文件中用来指示新行开始的特殊字符,常见的换行符有LF(换行)和CR-LF(回车换行)两种。它们在大多数操作系统和文本编辑器中都有特定的用途。然而,当文本是从不同的来源汇总而成,或者在处理过程中...

    Messagebox()如何换行

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

    button换行

    在Delphi中,`#13`代表回车(CR),`#10`代表换行(LF)。因此,如果你的按钮Caption是“按钮1`#13#10`按钮2”,那么文本将在按钮上显示为两行。这对应于给定的标签`#13,回车键`。 2. **修改按钮的Style属性**:...

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

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

    txt文件换行转换mfc

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

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

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

Global site tag (gtag.js) - Google Analytics