计算机中的回车换行(CRLF)详解

2 篇文章 0 订阅

作者:朱之光

编过C程序的人都知道\n是换行符。在字符串中插入\n,就可以多行打印在屏幕上。如:printf(“hello\nWorld\n”);

         可是为什么要叫做“回车换行”?

起源

        首先要从打字机说起,打字机当前行打满后,要到下一行起始处开始打字需要两个步骤。
        第一步,将纸卷从最右边推到最左边,这个叫回车(Carriage Return,缩写为CR);
        第二步,将纸卷下卷一行,这个叫换行(Linefeed,缩写为LF)。

为什么要分成回车换行两步?为什么打字机不设计成一步完成?

        因为打字机不像计算机,打错后删除字符就可以。一旦打错就是白纸黑字改不了。只能将纸卷推回到打错的地方打上一个错误标记,再在后面接着打正确的。而在有些情况下,为了打出一些特殊的格式,打字员还会只换行不回车。比如:打一斜列的’*’

        回车换行符在ASCII码表中对应0x0A0x0D两个数字。对应C语言转义字符为’\r’’\n’。在编写计算机程序中很多人会用一个换行(LF)代替整个回车换行操作。也就是’\n’。这个要求计算机的显示系统能够正确处理并显示,显示的结果要根据不同的操作系统/软件环境来决定。
        打印到控制台最好把'\r\n'写全。如果是要保存到文件,请看下面的“不同平台下的文本文件”章节。

回车还有用吗?

        做一个试验:printf(“1111\r222”); =>输出结果为:2221,因为其中有一个回车符,将光标移动到了屏幕最左端。使得222覆盖了前面的111。最后一个1因没有被覆盖而被保留下来。

不同平台下的文本文件

        Unix中的文本文件以一个换行符(\n)作为每一行结束的标记;

        MS-DOS/Windows中的文本文件以一个回车加换行(\r\n)作为每一行结束的标记;

        Macintosh中的文本文件以一个回车符(\r)作为每一行结束的标记。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值