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

上传人:cl****1 文档编号:559484208 上传时间:2024-02-10 格式:DOC 页数:8 大小:92KB
返回 下载 相关 举报
C语言中换行符与回车符的区别_第1页
第1页 / 共8页
C语言中换行符与回车符的区别_第2页
第2页 / 共8页
C语言中换行符与回车符的区别_第3页
第3页 / 共8页
C语言中换行符与回车符的区别_第4页
第4页 / 共8页
C语言中换行符与回车符的区别_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《C语言中换行符与回车符的区别》由会员分享,可在线阅读,更多相关《C语言中换行符与回车符的区别(8页珍藏版)》请在金锄头文库上搜索。

1、C语言中换行符与回车符的区别能不能说“换行符就是输入完一行内容后,光标转到下一行的起始位置”,而“回车符就是输入完一行后光标转到该行的起始位置,其并不换行”?如果是,那我们平时在键盘上用的 Enter 和 Tab 又属于什么符呢?你说的没错 , 换行 (n) 就是光标下移一行却不会移到这一行的开头 , 回车 (r) 就是回到当前行的开头却不向下移一行 .Enter 键按下后会执行 nr 这样就是我们看到的一般意义的回车了 , 所以你用 16 进制文件查看方式看一个文本 , 就会在行尾发现 nrTab 是制表符 , 就是 t, 作用是预留 8 个字符的显示宽度 , 用于对齐。在计算机还没有出现之

2、前,有一种叫做电传打字机( Teletype Model 33 )的玩意,每秒钟可以打 10 个字符。但是它有一个问题,就是打完一行换行的时候,要用去 0.2 秒,正好可以打两个字符。 要是在这 0.2 秒里面,又有新的字符传过来,那么这个字符将丢失。于是,研制人员想了个办法解决这个问题, 就是在每行后面加两个表示结束的字符。 一个叫做“回车”,告诉打字机把打印头定位在左边界; 另一个叫做“换行”, 告诉打字机把纸向下移一行。 这就是“换行”和“回车”的来历, 从它们的英语名字上也可以看出一二。 后来,计算机发明了, 这两个概念也就被般到了计算机上。 那时,存储器很贵,一些科学家认为在每行结尾

3、加两个字符太浪费了,加一个就可以。于是,就出现了分歧。Unix 系统里,每行结尾只有“ ”,即“ n”;Windows系统里面,每行结尾是“ ”,即“ r ”; Mac系统里,每行结尾是“ ”。一个直接后果是, Unix/Mac 系统下的文件在 Windows里打开的话,所有文字会变成一行;而 Windows里的文件在 Unix/Mac 下打开的话,在每行的结尾可能会多出一个 M符号。在 ascii 中,回车和换行是不同的字符。 0x0A 是回车,即光标移动到本行的最左面 ; 0x0D 是换行,即光标移动到下一行。在 dos 窗口中按回车键,其实是输入了两个字符r( 回车 )n( 换行 )0x

4、0A,0x0D,对应到c 中,就是在 C语言中将 n存入文件window: 0d 0aunix : 0d如果不存到文件中,不会变。如果从文件中提取,windows: 0d 0a - nunix : 0d - n回车键,即键盘上的 ENTER键,是一个比较有用的键,在文字编辑时,回车键的作用是换行, 在输入网址时回车键的作用是“转到”, 在执行 DOS命令时,回车键的作用是执行 在标准键盘上,回车键一共有 2 个,一个在主键盘区的右边, Shift 键的上面,一个在小键盘的右下角,加号键的下面。回车键的历史关于“回车键”的来历, 还得从机械的英文打字机说起。 在打字机上, 有一个部件叫“字车”,

5、每输入一个单词,“字车”就前进一格。当输满一行后,使用者就要推动“字车”到起始位置, 这时打字机会有两个动作: “字车”归位、 滚筒上卷一行(相当于“字车”下移一行) ,以便开始输入下一行, 这中推动“字车”的动作叫“回车”。 后来,在电动的打字机上, 人们增加了一个直接起“回车”作用的键。他被称为“回车键”。在现今的电脑键盘上,“回车键”上曾使用过“ CR”、“ RETURN”的字样,后来才统一确定为“ Enter ”。回车的 ASCII 代码16 进制是“ 0x0d”10 进制是“ 13”在某些语言中可以用r 表示。如果用过机械打字机,就知道回车和换行的区别了。换行就是把滚筒卷一格,不改变

6、水平位置。回车就是把水平位置复位,不卷动滚筒。但是我们平时按得Enter 到底是回车还是换行,不太清楚?看到一种说法: windows 下 enter 是 nr,unix下是 n,mac 下是 r在 MS的系统中纯文本格式按一个回车键是输入了两个字符, 一个回车一个换行。在 LINUX系统中则只是一个回车。/ 以上内容参考了和的讨论还有在编程时文件操作wb(二进制方式)或者 wt( 文本方式 ) 也会有影响。我做了个实验 ( 实验用 .net2003)在 01.txt文件中输入12 然后 enter ,在 ultraedit中看到的二进制是31 32 0d0a然后程序如下:int mian()

7、 FILE *fp1,*fp2,*fp3,*fp4,*fp5,*fp6;char a10;char b10;fp1 = fopen(01.txt,r);fp3 = fopen(02.txt,w);fread(a,sizeof(unsigned char),8,fp1); /a fwrite(a,sizeof(unsigned char),8,fp3); /02.txt里是31 32 0a里是 31 32 0d 0a,原因是输入的情况下,换行回车转换成换行,然后输出时换行又会转成换行回车fclose(fp1);fclose(fp3);fp2 = fopen(01.txt,rb);fp4 = fo

8、pen(03.txt,wb);fread(b,sizeof(unsigned char),8,fp2); /b fwrite(b,sizeof(unsigned char),8,fp4); /03.txt里是31 32 0d 0a里是 31 32 0d 0a,原因是二进制情况下回车和换行的(类似文本方式的那种转换)是不存在的fclose(fp2);fclose(fp4);return 0;好像结论是这样的:读的方式下,在文本方式下,下, enter 是 0x0d,0x0a。enter是 0x0a;在二进制方式MSDN中查到这样的话: Also, in text mode, carriage r

9、eturn linefeed combinations are translated into single linefeeds on input, and linefeed characters are translated to carriage return linefeed combinations onoutput.(输入的情况下, 换行回车转换成换行, 然后输出时换行又会转成换行回车) When a Unicode stream-I/O function operates in text mode (the default), the source or destination s

10、tream is assumed to be a sequenceof multibyte characters. Therefore, the Unicode stream-input functionsconvert multibyte characters to wide characters. For the same reason, the Unicode stream-output functions convert wide characters to multibyte characters.Open in binary (untranslated) mode; transla

11、tions involving carriage-return and linefeed characters are suppressed.(二进制情况下回车和换行的转换是不存在的).再引用一篇:软硬回车 硬回车就是普通我们按回车产生的,它在换行的同时也起着段落分隔的作用。软回车是用 Shift + Enter 产生的,它换行,但是并不换段,即前后两段文字在 Word 中属于同一“段”。在应用格式时你会体会到这一点。切换 :编辑替换,点击高级,在“查找内容”点入“特殊字符”中的手动换行符,再在“替换为”中点入“特殊字符”中的段落标记,最后点击全部替换。键盘上只有一种回车键 Enter ,但却

12、有两种不同性质的换行标记,不能不说是一个奇迹。我们常用的回车是硬回车,就是在 word 中敲击 Enter 键产生的那个弯曲的小箭头,占两个字节。 这种回车可以有效地把段落标记出来分清楚。 在两个硬回车之间的文字自成一个段落, 可以对它单独设置段落标记而不用担心其他段落受到影响。这也是我们习惯用硬回车的原因:排版方便。但是硬回车也给我们带来了麻烦。 你如果是网页设计者, 或者是论坛游侠, 一定有这样的经历:当你打算换行时,换出的行却实在不能恭维,行间距太大了!其实这和硬回车的原理是一样的,只不过在 word 等文本编辑器中没有显示出它的“本来面目”。 不过这样的排版的确造成了不小的困难, 这时

13、我们就得请出硬回车的兄弟:软回车。软回车只占一个字节,在word 中是一个向下的箭头。如果你从很复杂的网页中向 word 中复制过文字的话, 对它一定不会陌生。 但是想在 word 中直接输入软回车可不是那么容易的。 因为软回车不是真正的段落标记, 它只是另起了一行, 不是分段。所以它不是很利于文字排版, 因为它无法作为单独的一段被赋予特殊的格式。但是尽管如此,它在网页设计中还是具有举足轻重的地位的。软回车能使前后两行的行间距大幅度缩小, 因为它不是段落标记, 要和法定的段落标记硬回车区别出来。 硬回车的 html 代码是 . ,段落的内容就夹在里面,而软回车的代码很精悍: 。因此在网页中想用到软回车,只需切换到代码页面,键入软回车的代码即可。下面我讲一下不同编辑器文字互相拷贝时回车的转化情况。地球人都知道的,网页的文字如果复制到 word 中,则硬回车变为弯曲的箭头,软回车变为向下的箭头。结果造成习惯用 word 编辑文本的朋友很不习惯很不舒服的情况。word 中的文本复制到网页中也是同样的道理。可以说 word 和网页比较兼容的,要不怎么会有“保存为 web页”这种选项呢?记事本也是大家摸的比较多的编辑器。 但是近年来随着社会发展外加记事本的种种弊端,许多人都将其打入冷宫。 对此我只能表示遗憾, 因为记事本本身的功能不丰富就是别的编辑器所取代不了的优点。 大家再次将

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 演讲稿/致辞

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号