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/的讨论
还有在编程时文件操作
发布评论