回车符和换行符

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

首先转一段关于回车和换行的历史。

回车和换行 关于“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别。
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。

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

这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。

后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。

Unix系统里,每行结尾只有“<换行>”,即“\n”;Windows系统里面,每行结尾是“<换行><回 车>”,即“\n\r”;Mac系统里,每行结尾是“<回车>”。一个直接后果是,Unix/Mac系统下的文件在Windows里打 开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。


Windows系统里面,每行结尾是“<换行><回车>”,即“\n\r”————此处有误,恰好将顺序颠倒了,从下面可以例子看出来。

下面在Linux中看看实际操作的效果。

先生成一个换行(\n, 0x0A)和回车(\r, 0x0D)组合的文本
$ echo -en '12\n34\r56\n\r78\r\n' > tmp

以十六进制方式查看文本
$ od -t x1 tmp
0000000 31 32 0a 33 34 0d 35 36 0a 0d 37 38 0d 0a
0000016

在Linux的vim中的显示效果

在windows的记事本中的显示效果

可见Linux中遇到换行符会进行回车+换行的操作,回车符反而只会作为控制字符显示,不发生回车的操作。而windows中要回车符+换行符才会回车+换行,缺少一个控制符或者顺序不对都不能正确的另起一行。

转载于:https://my.oschina.net/gundamfj/blog/28786

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267699.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux新建好文件后怎么编译,使用autoconf生成Makefile并编译工程的步骤

前言在Linux下&#xff0c;编译和链接需要用Makefile&#xff0c;而写好一个Makefile可不容易&#xff0c;写出一个规范的Makefile更是麻烦。我们可以利用autoconf来生成一个Makefile&#xff0c;尤其在大型工程里&#xff0c;能省去很多麻烦。这里我会用一个工程来说明怎么做&…

前端跨域的那些事

这一节&#xff0c;我们来讲一讲&#xff0c;前端跨域的那些事&#xff0c;主要分成这样的几部分来讲解&#xff0c; 一、为什么要跨域&#xff1f; 二、常见的几种跨域与使用场景 2.1 JSONP跨域 2.2 iframe跨域 2.3 window.name 跨域 2.4 document.domain 跨域 2.5 cookie跨域…

维护SAP帮助信息(WEB)

维护SAP帮助信息&#xff08;WEB&#xff09; 1、首先进入000 Client &#xff0c;然后scc4修改000的模式 2、spro 3、 4、 5、注意 服务器为&#xff1a;http://help.sap.com 路径为&#xff1a;saphelp_erp60_sp/helpdata 转载于:https://blog.51cto.com/anhwei/626111

读jQuery之十二(删除事件核心方法)

使用jQuery删除事件&#xff08;或称解除事件绑定&#xff09;有三个函数&#xff1a;unbind、die和undelegate。这三个方法都依赖于未公开的jQuery.event.remove&#xff08;后续使用remove简写&#xff09;。此为删除事件的核心方法。remove 所作的事情与上一篇提到的.add 刚…

像Excel一样使用python进行数据分析(1)

&#xff08;虽然是转载&#xff0c;但是是我每块都测试过得&#xff0c;容易出问题的地方我会添加一些自己的经验&#xff0c;仅供参考&#xff09; 像Excel一样使用python进行数据分析&#xff08;2&#xff09; 像Excel一样使用python进行数据分析&#xff08;3&#xff09;…

Xshell配置ssh免密码登录-密钥公钥(Public key)

1 简介 ssh登录提供两种认证方式&#xff1a;口令(密码)认证方式和密钥认证方式。其中口令(密码)认证方式是我们最常用的一种&#xff0c;这里介绍密钥认证方式登录到linux/unix的方法。 使用密钥登录分为3步&#xff1a; 1、生成密钥&#xff08;公钥与私钥&#xff09;&#…

linux vim ctags,Linux环境上代码阅读与编写的利器-vim+ctags+cscope

Linux环境下代码阅读与编写的利器----vimctagscscope所谓工欲善其事&#xff0c;必先利其器。从事Linux程序开发&#xff0c;特别是Linux驱动程序的开发&#xff0c;不管是通过windows下虚拟一个Linux,还是通过samba访问Linux都是很郁闷的事情。原因就是程序本身需要Linux的编译…

oracle vm中的xp添加共享文件夹

接着就可以在虚拟的电脑系统里面打开我们的共享文件夹&#xff0c;在桌面找到”网络邻居“&#xff0c;双击打开 我们需要通过”添加一个网络邻居“来加载我们刚才添加的”共享文件夹“&#xff0c;根据向导一步步执行 然后点击”浏览“ 展开前面的 ”“ visualBox shared fold…

MSBuild + MSILInect实现编译时AOP-改变前后对比

实现静态AOP&#xff0c;就需要我们在预编译时期&#xff0c;修改IL实现对代码逻辑的修改。Mono.Cecil就是一个很好的IL解析和注入框架&#xff0c;参见编译时MSIL注入--实践Mono Cecil(1)。 我的思路为&#xff1a;在编译时将加有继承制MethodInterceptBaseAttribute标签的原方…

惊人体积,无码改造,黑月V1.7.4增强版[20110810]

使用方法:替换 易语言 LIB目录下的黑月支持库 记得备份 去掉代码长度过少不能编译的限制.(比如空代码) 优化编译出来的文件体积大小.(exe貌似没问题,dll貌似也没问题,就是dll对体积的优化不会太多) 体积减少了N倍...不解释,不解释,高手懂得... 转载于:https://blog.51cto.com…

linux stm32 ide,一文教你如何在ubuntu上快速搭建STM32 CubeIDE环境(图文超详细+文末有附件)...

在快速ubuntu上安装cubeide你值得拥有&#xff1b;适合对linux系统还不是很熟悉的同学&#xff1b;1 下载 cubeide登陆官网&#xff0c;下载链接不知道是否有效&#xff0c;如果无效&#xff0c;需要提交自己的邮箱地址&#xff0c;ST官方会将下载链接发送至你的邮箱&#xff0…

思科(Cisco)路由器策略路由配置详解

策略路由是路由优化的常用方法。在做路由牵引时很多情况都要用到策略路由。 网络拓扑 R2的E1\E2口分别与R3的E1\E2口相连。 先配置好静态路由&#xff0c;使192.168.2.X与192.168.1.X互通(不经过R3)。即R1<->R2<->R4是互通的。 下面介绍一下配置策略路由的方法。 实…

python numpy中sum()时出现负值

import numpy anumpy.random.randint(1, 4095, (5000,5000)) a.sum() 结果为负值, 这是错误的&#xff0c;a.sum()的类型为 int32&#xff0c;如何做才能是结果显示正确呢&#xff1f;按照如下做法&#xff1a; cnumpy.int64(a).sum() 结果为正直&#xff0c;正确&#xff0c;c…

SQL Server插入中文数据出现乱码问题

问题如上图。 创建数据库的代码---创建promary表 create table promary ( proID int primary key, proName varchar(50) not null ) 出现上图所示内容是因为proName varchar(50) not null这个地方有问题。一般来说&#xff0c;如果含有中文字符&#xff0c;用nchar/nvarchar&…

c语言find和mid函数的使用方法,Excel Mid函数和MidB函数使用方法的7个实例,含与Len和Find组合反向提取字符或截取单位...

在 Excel 中&#xff0c;Mid函数用于从文本中提取从指定位置开始的指定字符数&#xff0c;而MidB函数用于从文本中提取从指定位置开始的指定字节数&#xff1b;它们的区别为&#xff1a;前者把全角(如汉字)与半角(如数字和字母)都算作一个字符&#xff0c;后者把全角算作两个字…

C++类指针类型的成员变量的浅复制与深复制

本篇文章旨在阐述C类的构造&#xff0c;拷贝构造&#xff0c;析构机制&#xff0c;以及指针成员变量指针悬空问题的解决。需要读者有较好的C基础&#xff0c;熟悉引用&#xff0c;const的相关知识。 引言&#xff1a; 类作为C语言的一种数据类型&#xff0c;是对C语言结构体的一…

21天学通c语言第四版pdf,21天学通Visual C++ PDF扫描版[116MB]

21天学通Visual C 内容简介&#xff1a;本书是Visual C语言的入门教程&#xff0c;较全面地介绍了Visual C编程的相关知识&#xff0c;然而&#xff0c;本书并没有泛讲Visual C语言的所有知识&#xff0c;而是突出重点&#xff0c;选择最重要的内容进行讲解。本书一共分为五篇&…

继续聊WPF——动态数据模板

我为啥称之为“动态数据模板”&#xff1f;先看看下面的截图&#xff0c;今天&#xff0c;我们就是要实现这种功能。 大概是这样的&#xff0c;我们定义的DataTemplate是通过触发器动态应用到 ComboBoxItem 上。 这个下拉列表控件绑定了一个Person集合&#xff0c;Person类的定…

刺激战场c语言,刺激战场:假车库、C字楼都是啥?学会吃鸡术语新手变大神!...

原标题&#xff1a;刺激战场&#xff1a;假车库、C字楼都是啥&#xff1f;学会吃鸡术语新手变大神&#xff01;刺激战场有越来越多的新玩家加入其中&#xff0c;然而新手想入门&#xff0c;却有时候找不对方法&#xff0c;其实吃鸡这个游戏其实还是非常简单的&#xff0c;不过想…

HTMLParser-实战

了解了HTMLParser库的知识后&#xff0c;选择做一个小训练&#xff0c;对https://www.python.org/events/python-events/这个网址进行分析&#xff0c;之后输出其中每次会议的题目、时间和地点。 如果要简单了解下HTMLParser库可以点击打开 下面进入正题 这是网站的源码&#x…