回车"(carriage return)和"换行"(line feed)的区别和来历

这两天研究小票打印机编程手册,遇到这样一个问题:

LF,即Line Feed,中文意思“换行”;CR,即Carriage Return,中文意思“回车”。但是我们通常把这两个混为一谈。既然设置成2个,则肯定有其存在的道理,查了一下资料,与大家分享。

关于“回车”(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符号。

c++语言编程时(windows系统)

\r (return)就是return 回到 本行 行首 这就会把这一行以前的输出 覆盖掉

如:
int main() {

cout << "hahaha" << "\r" << "xixi" ;

}
最后只显示 xixi 而 hahaha 背覆盖了

\n (newline)是回车+换行 把光标 先移到 行首 然后换到下一行 也就是下一行的行首拉

int main() {

cout << "hahaha" << "\n" << "xixi" ;

}
则 显示
hahaha
xixi

在vb程序里,要想移到下一行,也得写vbCrlf,或者char(13)+char(10),二者连用才能实现真正的回车。所以对于回车和换行的支持,不同的语言,不同的环境,对其的支持和定义也各不相同。

附:ASCII表

时间: 2024-12-03 03:54:38

回车"(carriage return)和"换行"(line feed)的区别和来历的相关文章

windows和linux的换行规则有什么区别

在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符.但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符.要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失. 于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符.一个叫做"回车"(Carriage Return),告诉打字机把打印头定位在左边界:另一个叫做"换行"(Linefeed),告诉打字机把纸向

正则表达式.号元字符(除了回车符\r和换行符\n)

正则表达式.号元字符: 点号(.)元字符可以匹配除了回车符(\r)和换行符(\n)之外的任意字符. 语法结构: 构造函数方式: new RegExp(".") 对象直接量方式: [JavaScript] 纯文本查看 复制代码运行代码 /./ 浏览器支持: IE浏览器支持此元字符. 火狐浏览器支持此元字符. 谷歌浏览器支持此元字符. 注意: 在IE9以上浏览器或者其他标准浏览器中,小数点能够匹配除了回车符(\r)和换行符(\n)之外的任意字符. 在IE8以下浏览器中,小数点能够匹配除了换

php把文本框回车转换成html换行

php把文本框回车转换成html换行 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-e

Silverlight中文本框添加回车事件后,换行无法清除的解决方法

在开发Silverlight的项目中,为了更好的用户体验,我们常要给一些控件添加一些快捷键.然而,在Silverlight中当用户回车提交后,光标停留在文本框的第二行怎么也清除不掉,经过一段时间研究,终于找到解决方法,特写此文章与大家分享一下: 有时候我们在网站中,比如用户评论,添加一个回车键盘事件,快速提交,需要给文本框添加键盘事件处理方法,在这里先说一下组合键的使用方法,代码如下: private void txtToSend_KeyDown(object sender, KeyEventA

javascript中return,return true,return false三者的用法及区别_javascript技巧

1.语法及返回方式 ①返回控制与函数结果         语法为:return 表达式;         语句结果函数的执行,返回调用函数,而且把表达式的值作为函数结果返回出去 ②返回控制无函数结果         语法为:return;         在大多数情况下,为事件处理函数如果让其返回false,可以防止默认的事件行为.例如,默认情况下,点击一个<a>标签元素,页面会跳转到该元素href属性指定的页. 而return false就相当于终止符,return true就相当于执行符.

return false;和e.preventDefault();的区别_javascript技巧

Have you ever seen those two things (in the title) being used in jQuery? Here is a simple example: 复制代码 代码如下: $("a").click(function() { $("body").append($(this).attr("href")); return false; } That code would append the href a

Linux和windows中的换行符差异问题

  Linux和windows中的换行符差异问题 LINUX的换行符在Windows记事本打开不换行或出现黑点是由于Linux和windows中的换行符差异问题造成的. 首先来看回车符号和换行符号产生背景 关于"回车"(carriage return)和"换行"(line feed)这两个概念的来历和区别. 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符.但是它有一个问题,就是打完一行换行的时候,要用

XP下超级终端与嵌入式开发板交互技巧

一.简介 超级终端是Windows操作系统自带的一个通用的串行交互软件,可以通过这个工具对路由器交换机等进行配置.使用调制解调器.一条零调制解调电缆或以太网连接,再调用此程序能够连接到其他计算机.Telnet 站点.公告板系统 (BBS).联机服务和主机.我们可以用它来调试电路是否可行. 嵌入式开发板基本都有串口,可以通过超级终端与嵌入式系统的串口交互,使超级终端成为嵌入式系统的"显示器". 使用:开始→程序→附件→通讯→超级终端(可新建或者使用现有的连接对设备进行配置); 启动命令:

不同平台下的换行符

In Windows applications, a new line is normally stored as a pair of characters: carriage return (CR) and line feed (LF). In Unix applications, a new line is normally stored as an LF character. Macintosh applications also use an LF to store a new line