回车符和换行符

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跨域…

VC++学习(15):多线程

1. 程序,进程,线程 A: 程序是计算机指令的集合,它以文件的形式存储在磁盘上,而进程通常被定义为一个正在运行的程序的实例,是一个程序在其自身的地址空间中的一次执行活动.一个程序可以对应多个进程. 进程是资源申请,高度和独立运行的单位,因此,它使用系统中的运行资源,而…

在linux中500g怎么分区,500G的硬盘,怎么分区比较合理?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼个人电脑怎么分&#xff1f;希望大家给我规范一下另外&#xff0c;我的/dev/sda2用的是xfs&#xff0c;/dev/sda9用的是reiser4draplaterDrapl ~ $ sudo fdisk -l密码&#xff1a;Disk /dev/sda: 160.0 GB, 160041885696 bytes255 …

CSS宽高背景介绍

本萌新还未毕业&#xff0c;在一家外包公司干了一个月&#xff0c;因烦恼日常琐事任务&#xff0c;深感外包之坑&#xff0c;以及上班路途艰辛&#xff0c;特转战erp实施&#xff0c;继写日常随笔&#xff0c;望来日屌丝逆袭&#xff0c;走上人生巅峰。 若有错误&#xff0c;请…

linux交叉编译生成的是什么,静态链接util-linux – 交叉编译(生成动态链接文件)...

我一直试图交叉编译util-linux for arm但我一直以动态链接的可执行文件结束,我不知道为什么会这样.我的目标是静态的.我在使用类似步骤的不同工具之前进行了交叉编译,并且它一直有效,所以这次我不知道我做错了什么.我正在使用Ubuntu 16.04.以下是我正在运行的命令&#xff1a;e…

维护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;…

linux svn 自动部署,linux下svn安装和自动部署

liunx系统下安装svn并自动更新到项目中三部分&#xff1a;【1.安装 2.建立svn库 3.配置文件】html查看是否安装了svn 【svn –version】若是安装了svn能够先进行卸载 【sudo apt-get remove –purge subversion】接下来进行安装 【sudo apt-get install subversion】当安装成功…

css优先级

很经典的文章啊 [转]CSS的优先级特性Specificity 如果同个元素有两个或以上冲突的CSS规则&#xff0c;浏览器有一些基本的规则来决定哪一个非常特殊而胜出。它可能不像其它那么重要&#xff0c;大部分案例你不需要担心冲突&#xff0c;但大型而且复杂的CSS文件&#xff0c;或有…

linux编译准备,Linux 下编译指南

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼首先&#xff0c;我们需要获取最新的源码。使用如下命令即可&#xff1a;git clone -b master --depth1 https://github.com/CleverRaven/Cataclysm-DDA.git这条命令会只获取 master 分支下最新的代码。对于普通玩家来说这已经足够…

ServletConfig的详解

一、Servlet的作用 servlet是在servlet容器内运行的程序&#xff0c;有时需要访问容器外部或借助容器访问外部资源。所以可以通过web.xml文件中为某个servlet配置的名称和参数等信息传递给servlet。 这样做的好处是&#xff1a;如果将重要的信息、编码方式等配置信息放在web.xm…

You can't specify target table 'tablename' for update in FROM clause的解决方法

在执行下面的sql时报错 DELETE FROM temp WHERE id IN (SELECT a.id FROM t_user t JOIN temp a ON t.email a.email); 这种写法在sqlserver或者oracle中是支持的&#xff0c;但是mysql目前是不支持的&#xff0c;在mysql中不能同时查询一个表的数据再同时进行删除&#xff0…

linux缓存代码,Linux使用的缓存

Linux使用的缓存6.7.1 Linux使用的缓存不管在硬件设计还是软件设计中&#xff0c;高速缓存是获得高性能的常用手段。Linux 使用了多种和内存管理相关的高速缓存。1&#xff0e; 缓冲区高速缓存&#xff1a;缓冲区高速缓存中包含了由块设备使用的数据缓冲区。这些缓冲区中包含了…

Linux查看文件夹大小du

du命令参数详解见&#xff1a; http://baike.baidu.com/view/43913.htm 下面我们只对其做简单介绍&#xff1b; 查看linux文件目录的大小和文件夹包含的文件数 统计总数大小 du -sh filename&#xff08;其实我们经常用du -sh *&#xff0c;显示当前目录下所有的文件及其大小&a…

cursor: mutex S等待事件

cursor: mutex * events等待事件 cursor: mutex * events等待事件用于Cursor Parent 和 Cursor stats类型的操作&#xff1a; ‘Cursor: Mutex S’ &#xff0c; 某个进程以SHRD S mode申请一个Mutex&#xff0c; 而该Mutex要么被其他进程已EXCL X mode所持有&#xff0c;要么其…

flash和linux文件系统,面向大容量Flash的高效Linux文件系统改进和实现

摘要&#xff1a;文件系统是Linux操作系统的重要组成部分.而本文对于面向大容量Flash文件系统高效性的研究则主要侧重于对于嵌入式Linux操作系统文件系统的研究.由于嵌入式设备介质的特殊性,电源系统的不稳定性以及Flash容量的日益增长,大容量Flash设备文件系统高效性方面的问题…

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

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

Linux面试题集锦,测测你的水平(答案)四

三&#xff0e;简答题&#xff1a;1&#xff0e;简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程。参考答案&#xff1a;Linux通过i节点表将文件的逻辑结构和物理结构进行转换。i节点是一个64字节长的表&#xff0c;表中包含了文件的相关信息&#xff0c;…