2024年6月6日发(作者:)

C语言中换行符与回车符的区别

能不能说“换行符就是输入完一行内容后,光标转到下一行的起始位置”,而

“回车符就是输入完一行后光标转到该行的起始位置,其并不换行”?如果是,

那我们平时在键盘上用的 Enter 和 Tab 又属于什么符呢???

你说的没错,换行(n)就是光标下移一行却不会移到这一行的开头,回车(r)就

是回到当前行的开头却不向下移一行.Enter键按下后会执行nr这样就是我们

看到的一般意义的回车了,所以你用16进制文件查看方式看一个文本,就会在行

尾发现"nr"Tab是制表符,就是"t",作用是预留8个

字符的显示宽度,用于对齐。

在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩

意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,

要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过

来,那么这个字符将丢失。于是,研制人

员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做

“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字

机把纸向下移一行。这就是“换行”和“回车”的来历,从它们的英语名字上也

可以看出一二。后来,计算机发明了,这两个概念也就被般到了计算机上。那时,

存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。

于是,就出现了

分歧。

Unix系统里,每行结尾只有“<换行>”,即“n”;Windows系统里面,每行结

尾是“<换行><回车>”,即“nr”;Mac系统里,每行结尾是“<回车>”。一

个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变

成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多

出一个^M符号。

在ascii中,回车和换行是不同的字符。0x0A是回车,即光标移动到本行的最

左面; 0x0D是换行,即光标移动到下一行。

在dos窗口中按回车键,其实是输入了两个字符0x0A,0x0D,对应到c中,就是

r(回车)n(换行)

在C语言中

将 n 存入文件

window: 0d 0a

unix: 0d

如果不存到文件中,不会变。

如果从文件中提取,

windows: 0d 0a -> n

unix : 0d -> n

回车键,即键盘上的ENTER键,是一个比较有用的键,在文字编辑时,回车键的

作用是换行,在输入网址时回车键的作用是“转到”,在执行DOS命令时,回车

键的作用是执行„„

在标准键盘上,回车键一共有2个,一个在主键盘区的右边,Shift键的上面,

一个在小键盘的右下角,加号键的下面。

回车键的历史

关于“回车键”的来历,还得从机械的英文打字机说起。在打字机上,有一个部

件叫“字车”,每输入一个单词,“字车”就前进一格。当输满一行后,使用者

就要推动“字车”到起始位置,这时打字机会有两个动作:“字车”归位、滚筒

上卷一行(相当于“字车”下移一行),以便开始输入下一行,这中推动“字车”

的动作叫“回车”。后来,在电动的打字机上,人们增加了一个直接起“回车”

作用的键。他被称为“回车键”。

在现今的电脑键盘上,“回车键”上曾使用过“CR”、“RETURN”的字样,

后来才统一确定为“Enter”。

回车的ASCII代码

16进制是“0x0d”

10进制是“13”

在某些语言中可以用‘r’表示。

如果用过机械打字机,就知道回车和换行的区别了。。。

换行就是把滚筒卷一格,不改变水平位置。

回车就是把水平位置复位,不卷动滚筒。

但是我们平时按得Enter到底是回车还是换行,不太清楚??

看到一种说法:windows下enter是 nr,unix下是n,mac下是r

在MS的系统中纯文本格式按一个回车键是输入了两个字符,一个回车一个换行。

在LINUX系统中则只是一个回车。

//以上内容参考了/t/20040617/23/#和

/t/20021113/09/的讨论

还有在编程时文件操作