C语言中换行符与回车符的区别Word文件下载.docx

上传人:b****0 文档编号:13473421 上传时间:2022-10-11 格式:DOCX 页数:7 大小:30.07KB
下载 相关 举报
C语言中换行符与回车符的区别Word文件下载.docx_第1页
第1页 / 共7页
C语言中换行符与回车符的区别Word文件下载.docx_第2页
第2页 / 共7页
C语言中换行符与回车符的区别Word文件下载.docx_第3页
第3页 / 共7页
C语言中换行符与回车符的区别Word文件下载.docx_第4页
第4页 / 共7页
C语言中换行符与回车符的区别Word文件下载.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

C语言中换行符与回车符的区别Word文件下载.docx

《C语言中换行符与回车符的区别Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言中换行符与回车符的区别Word文件下载.docx(7页珍藏版)》请在冰豆网上搜索。

C语言中换行符与回车符的区别Word文件下载.docx

这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。

后来,计算机发明了,这两个概念也就被般到了计算机上。

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

于是,就出现了

分歧。

Unix系统里,每行结尾只有“<

换行>

”,即“\n”;

Windows系统里面,每行结尾是“<

<

回车>

”,即“\n\r”;

Mac系统里,每行结尾是“<

”。

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

而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

在ascii中,回车和换行是不同的字符。

0x0A是回车,即光标移动到本行的最左面;

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

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

在C语言中

将\n存入文件

window:

0d0a

unix:

0d

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

如果从文件中提取,

windows:

0d0a->

\n

unix:

0d->

\n

回车键,即键盘上的ENTER键,是一个比较有用的键,在文字编辑时,回车键的作用是换行,在输入网址时回车键的作用是“转到”,在执行DOS命令时,回车键的作用是执行……

在标准键盘上,回车键一共有2个,一个在主键盘区的右边,Shift键的上面,一个在小键盘的右下角,加号键的下面。

回车键的历史

关于“回车键”的来历,还得从机械的英文打字机说起。

在打字机上,有一个部件叫“字车”,每输入一个单词,“字车”就前进一格。

当输满一行后,使用者就要推动“字车”到起始位置,这时打字机会有两个动作:

“字车”归位、滚筒上卷一行(相当于“字车”下移一行),以便开始输入下一行,这中推动“字车”的动作叫“回车”。

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

他被称为“回车键”。

在现今的电脑键盘上,“回车键”上曾使用过“CR”、“RETURN”的字样,后来才统一确定为“Enter”。

回车的ASCII代码

16进制是“0x0d”

10进制是“13”

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

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

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

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

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

看到一种说法:

windows下enter是\n\r,unix下是\n,mac下是\r

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

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

//以上内容参考了#和的讨论

还有在编程时文件操作

wb(二进制方式)或者wt(文本方式)也会有影响。

我做了个实验(实验用.net2003)

在01.txt文件中输入12然后enter,在ultraedit中看到的二进制是31320d0a

然后程序如下:

intmian()

{FILE*fp1,*fp2,*fp3,*fp4,*fp5,*fp6;

chara[10];

charb[10];

fp1=fopen("

01.txt"

"

r"

);

fp3=fopen("

02.txt"

w"

fread(a,sizeof(unsignedchar),8,fp1);

//a里是31320a

fwrite(a,sizeof(unsignedchar),8,fp3);

//02.txt里是31320d0a,原因是输入的情况下,换行回车转换成换行,然后输出时换行又会

转成换行回车

fclose(fp1);

fclose(fp3);

fp2=fopen("

rb"

fp4=fopen("

03.txt"

wb"

fread(b,sizeof(unsignedchar),8,fp2);

//b里是31320d0a

fwrite(b,sizeof(unsignedchar),8,fp4);

//03.txt里是31320d0a,原因是二进制情况下回车和换行的(类似文本方式的那种转换)是不存在的

fclose(fp2);

fclose(fp4);

return0;

}

好像结论是这样的:

读的方式下,在文本方式下,enter是0x0a;

在二进制方式下,enter是0x0d,0x0a。

MSDN中查到这样的话:

Also,intextmode,carriagereturn–linefeedcombinationsaretranslatedintosinglelinefeedsoninput,andlinefeedcharactersaretranslatedtocarriagereturn–linefeedcombinationsonoutput.(输入的情况下,换行回车转换成换行,然后输出时换行又会转成换行回车)WhenaUnicodestream-I/Ofunctionoperatesintextmode(thedefault),thesourceordestinationstreamisassumedtobeasequenceofmultibytecharacters.Therefore,theUnicodestream-inputfunctionsconvertmultibytecharacterstowidecharacters.Forthesamereason,theUnicodestream-outputfunctionsconvertwidecharacterstomultibytecharacters.

Openinbinary(untranslated)mode;

translationsinvolvingcarriage-returnandlinefeedcharactersaresuppressed.(二进制情况下回车和换行的转换是不存在的).

再引用一篇:

软硬回车}

硬回车就是普通我们按回车产生的,它在换行的同时也起着段落分隔的作用。

软回车是用Shift+Enter产生的,它换行,但是并不换段,即前后两段文字在Word中属于同一“段”。

在应用格式时你会体会到这一点。

切换:

编辑——替换,点击高级,在“查找内容”点入“特殊字符”中的手动换行符,再在“替换为”中点入“特殊字符”中的段落标记,最后点击全部替换。

键盘上只有一种回车键Enter,但却有两种不同性质的换行标记,不能不说是一个奇迹。

我们常用的回车是硬回车,就是在word中敲击Enter键产生的那个弯曲的小箭头,占两个字节。

这种回车可以有效地把段落标记出来分清楚。

在两个硬回车之间的文字自成一个段落,可以对它单独设置段落标记而不用担心其他段落受到影响。

这也是我们习惯用硬回车的原因:

排版方便。

但是硬回车也给我们带来了麻烦。

你如果是网页设计者,或者是论坛游侠,一定有这样的经历:

当你打算换行时,换出的行却实在不能恭维,行间距太大了!

其实这和硬回车的原理是一样的,只不过在word等文本编辑器中没有显示出它的“本来面目”。

不过这样的排版的确造成了不小的困难,这时我们就得请出硬回车的兄弟:

软回车。

软回车只占一个字节,在word中是一个向下的箭头。

如果你从很复杂的网页中向word中复制过文字的话,对它一定不会陌生。

但是想在word中直接输入软回车可不是那么容易的。

因为软回车不是真正的段落标记,它只是另起了一行,不是分段。

所以它不是很利于文字排版,因为它无法作为单独的一段被赋予特殊的格式。

但是尽管如此,它在网页设计中还是具有举足轻重的地位的。

软回车能使前后两行的行间距大幅度缩小,因为它不是段落标记,要和法定的段落标记——硬回车区别出来。

硬回车的html代码是<

p>

..<

/p>

,段落的内容就夹在里面,而软回车的代码很精悍:

br>

因此在网页中想用到软回车,只需切换到代码页面,键入软回车的代码即可。

下面我讲一下不同编辑器文字互相拷贝时回车的转化情况。

地球人都知道的,网页的文字如果复制到word中,则硬回车变为弯曲的箭头,软回车变为向下的箭头。

结果造成习惯用word编辑文本的朋友很不习惯很不舒服的情况。

word中的文本复制到网页中也是同样的道理。

可以说word和网页比较兼容的,要不怎么会有“保存为web页”这种选项呢?

记事本也是大家摸的比较多的编辑器。

但是近年来随着社会发展外加记事本的种种弊端,许多人都将其打入冷宫。

对此我只能表示遗憾,因为记事本本身的功能不丰富就是别的编辑器所取代不了的优点。

大家再次将网页的文字复制时,不妨粘贴到记事本里试试。

哈哈,不管网页设计者用的是什么回车,现在都变成一种回车了!

怎么,你不信?

那就看看吧:

软回车变成了普通的回车,硬回车变成了两个普通的回车。

你再从记事本里复制文字到word,记事本里的回车无一例外全都变成了硬回车!

你再再从记事本里复制文字到网页编辑器,所有回车就都变成软回车了!

\n是换行,英文是linefeed,ASCII码是0xA。

\r是回车,英文是carriagereturn,ASCII码是0xD。

---------------------------------------------------------------------------------------------------------------------------

回车的传说---兼谈\n\r区别(转载)

IT文摘2010-08-3111:

40:

24阅读86评论0字号:

中订阅

如果你有在windows下编程的经验就会发现windows下敲下回车键会产生两个字符CR和LF,用16进制编辑器打开windows下的文本文件也会看到换行是0D和0A表示的,也就是CR和LF的ASCII编码。

而在UNIX类系统中换行只有一个字符LF,所以UNIX中的文本文件在windows中用记事本打开会出现不可解析字符且丢失换行格

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1