彻底搞定回车0d和换行0a

彻底搞定回车0d和换行0a
彻底搞定回车0d和换行0a

什么是0x0d和0x0a,可能大部分人都知道是回车和换行字符,但那个是回车,那个是换行?估计很多人都一时说不清楚了---也许你不相信,那就调查下周围的同事吧,估计会包含以下字眼“大概。我记得。回车是0x0d吧”。这次我移植arm-linux C的程序,至VC++,

发现了很多不同,尤其是这个回车换行浪费我一上午的时间,我决定借此机会彻底搞定他们,这两个令人讨厌的家伙。

先说下浪费我一上午的那个东西----教训是很重要的,希望大家不要重蹈我的覆辙----,在arm-linux下,写二进制文件,打开文件的时候这样写就可以了fp_wthdisk = fopen(file_pathname,"w");,以w格式写就可以了。把这段程序移植到vc++后,发现一旦我向文件写入0x0a,前边就会自动加上0x0d,我以为是我写入数组的问题,反复检查也没有找到毛病,后来同事问我:“你是不是二进制格式写入的文件?”我说:“是呀,fwrite w 格式,没有问题呀”,后来他说,你试试“wb格式写入一下”,改为wb后,果真就好了,厉害!,我对他竖起了大拇指。

看到这里,上边促使我下决心搞清楚回车换行的原因说完了。我想可能有人会犯同样错误的。但如果你对以下几个问题,都知晓了,就不必浪费时间,继续看下去了。

1.在Windows XP Visual C++下,按下回车键,系统获得的字符是0x0d还是0x0a,还是

0x0d和0x0a?

2.回车(0x0d)的作用是回到本行的行首位置,表示本行已经输入完毕,停留在最后一个位置,还是光标转移到下一行的起始位置?

1.的答案是仅获得字符0x0d

2.答案是回车的作用只是移动光标至该行的起始位置

注意:回车和换行在不同环境下的意义不同,正如sleep(1)和Sleep(1)【注意S大写】这两个函数的不同一样,sleep(1)在linux下表示延时1s,而Sleep(1)在vc++下表

示延时1ms,如果不依据环境来讨论回车和换行,是无意义的,只能是让人们误入歧途和浪费时间。

我只在arm-linux C和vc++下做了试验,请大家在接触其它语言环境下,小心推广,不行就自己动手做试验,最可靠。在arm-linux C和vc++下回车换行的意义如下。

回车代码:CR ASCII码:\ r ,十六进制,0x0d,回车的作用只是移动光标至该行的起始位置;

换行代码:LF ASCII码:\ n ,十六进制,0x0a,换行至下一行行首起始位置;

Linux和windows下,回车试验

CODE:

sprintf(versionbuf,"%s","TEST_VERSION_1_0_11\rabcdefg\r34567\n");

printf("%s",versionbuf);

均打印输出:34567fgRSION_1_0_11,证明了以上结论。

其实回车和换行之所以把大家搞迷糊的一个重要原因,是大家把键盘的“回车键”,0x0d表示“回车”,我们在windows下的txt文件下敲下的回车键等情况搅在了一起。在键盘上敲下回车键,在不同软件下获得字符大有不同。

Windows下在txt文件中敲下回车键,然后16进制观察,你会发现获得了2个字符,0x0d 和0x0a,这个大家都知道,但这不意味着,在任何情况下敲下回车键,都会获得0x0d和0x0a。

在linux下,你对一个文件,敲下回车键,你就会发现,它每次只增加一个字符。

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

C语言中换行符与回车符的区别 能不能说“换行符就是输入完一行内容后,光标转到下一行的起始位置”,而“回车符就是输入完一行后光标转到该行的起始位置,其并不换行”?如果是,那我们平时在键盘上用的 Enter 和 Tab 又属于什么符呢??? 你说的没错,换行(\n)就是光标下移一行却不会移到这一行的开头,回车(\r)就是回到当前行的开头却不向下移一行.Enter键按下后会执行\n\r这样就是我们看到的一般意义的回车了,所以你用16进制文件查看方式看一个文本,就会在行尾发现"\n\r"Tab是制表符,就是"\t",作用是预留8个 字符的显示宽度,用于对齐。 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。于是,研制人 员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了 分歧。 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: 0d 0a

回车与换行的区别

回车与换行的区别 我一直没有搞得很清楚,回车和换行符有啥区别。 记得大一时,C语言老师就说过回车、换行,但都没说得那么细。前两天,看写两句Perl 代码时,忽然想起区别一下回车和换行(\r和\n)。现在理解清楚了,记个笔记吧。 符号ASCII码意义 \n 10 换行NL \r 13 回车CR 回车\r 本义是光标重新回到本行开头,r的英文return,控制字符可以写成CR,即Carriage Return 换行\n 本义是光标往下一行(不一定到下一行行首),n的英文newline,控制字符可以写成LF,即Line Feed 在不同的操作系统这几个字符表现不同,比如在WIN系统下,这两个字符就是表现的本义,在UNIX类系统,换行\n就表现为光标下一行并回到行首,在MAC上,\r就表现为回到本行开头并往下一行,至于ENTER键的定义是与操作系统有关的。通常用的Enter是两个加起来。 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。 于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。 这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。 后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。 /*======================================*/ \n: UNIX 系统行末结束符 \n\r: window 系统行末结束符 \r: MAC OS 系统行末结束符 /*======================================*/ 一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。(这也是经常说见到的现象,哈哈,原来是这样的) c++语言编程时(windows系统)\r 就是return 回到本行行首这就会把这一行以前的输出覆盖掉 如: int main() { cout << "hahaha" << "\r" << "xixi" ; } 最后只显示xixi 而hahaha 被覆盖了

Word中硬回车与软回车的区别和用法

Word中硬回车与软回车的区别和用法硬回车:是我们在Microsoft Word中按回车键(“Enter”键)产生的那个小弯箭头(即:),官方名称是段落标记,占两个字节。硬回车在换行的同时也起着段落分隔的作用。硬回车在Word或者WPS中代码“^p(即:英文字母p)”。 软回车:是我们在Microsoft Word中按“Shift + Enter”键产生的那个直箭头(即:↓),官方名称是手动换行符,只占一个字节。在字处理软件中与软回车相对。软回车是word为适应网页的格式而自动对文字采取的处理。软回车在Word或者WPS中代码“^l”(即:英文字母l)。 二者的区别: 1.“^l”只是换行,但没有分段,就是说“^l”前后的文字同属于一段,首行缩进等格式对“^l”下一行的文字是无效的,它不是很利于文字排版,软回车能使前后两行的行间距大幅度缩小。 2.“^p”是回车符,他的作用是换行、分段。“^p”之后的文字形成一个新的段落。 3.换行符一般在需要项目符号和编号的时候用到。 4.在word里,软回车是排版自动产生的换行,硬回车是人工换行。软回车在页面格式发生变化时自动调整,硬回车作为换行处理 硬回车与软回车之间的转化: 1.硬回车(即:)转化成软回车(即:↓):打开“替换”窗口,在查找栏中输入“^p”,在替换栏中输入“^l”,然后点击全部替换。如图1 图1

2.硬回车(即:↓)转化成软回车(即:):打开“替换”窗口,在查找栏中输入“^l”,在替换栏中输入“^p”,然后点击全部替换。如图2 图2 3.硬回车(即:)与软回车(即:↓)之间的转化除了可以手输外,还可以通过“替换”窗口下方的“特殊格式”命令选择相应的命令,就不用手输了。

回车符与换行符的区别

关于换行和回车其实平时我们不太在意,所以关于两者的区别也不太清楚,在平时开发时可能会遇到一些文件处理的问题,放到不同的操作系统上出现各种坑。那么回车和换行到底有哪些区别呢?今天咱们就来总结一下。 1. 由来 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的机械打字机,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。 于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界,不卷动滚筒;另一个叫做“换行”,告诉打字机把滚筒卷一格,不改变水平位置。 这就是“换行”和“回车”的由来。 2. 使用 后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。 回车 \r 本义是光标重新回到本行开头,r的英文return,控制字符可以写成CR,即Carriage Return 换行 \n 本义是光标往下一行(不一定到下一行行首),n的英文newline,控制字符可以写成LF,即Line Feed 符号ASCII码意义 \n 10 换行NL \r 13 回车CR 在不同的操作系统这几个字符表现不同,比如在WIN系统下,这两个字符就是表现的本义,在UNIX类系统,换行\n就表现为光标下一行并回到行首,在MAC上,\r 就表现为回到本行开头并往下一行,至于ENTER键的定义是与操作系统有关的。通常用的Enter是两个加起来。 不同操作系统下的含义: \n: UNIX 系统行末结束符 \r\n: window 系统行末结束符 \r: MAC OS 系统行末结束符 我们经常遇到的一个问题就是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。 3. 软回车和硬回车 再扩展一下回车的一些知识。 硬回车就是普通我们按回车产生的,它在换行的同时也起着段落分隔的作用。

修改换行符和删掉空行

修改换行符和删掉空行 方法一: 1、现从符号的含意说起:①你说的↓是人工换行符,②回车符是↙; 2、从网页复制过来的文件都包含↓和↙,可以通过查找替换来进行快速替换以及消除空行,方法:打开查找替换→选择高级→在查找栏,点→特殊符号→选择手动换行符(显示为^l),在替换栏,点→特殊符号→选择段落标记(显示为^p),执行全部替换。 3、然后再解决空行:查找替换→高级→查找栏输入两个段落标记(显示为^p^p),替换栏选择1个段落标记(^p),执行全部替换。执行一次后,再执行一次。到显示为1的时候就基本消除了。应说很简单的。 方法二: 有的,你在粘贴时选菜单栏“编辑”下的“选择性粘贴”--无格式文本,那样就成了默认的文本格式(五号字,宋体,单倍行距),然后按CTRL+A 全选后重新设置自己喜欢的格式就可以了。 如果粘贴后每段之间还有空行,则按CTRL+A全选后,按右键--段落--段前设为“0行”,段后设为“0行”(如果都为自动就是段中间空一行),再按确定就可以了。 方法三: 一次删除N个空行 我们在网上下载资料.用word整理归档井打印的时候,常发现文档里有非常多的空白行,直接打印既影响阅读,又浪费纸张,一个个删除十分麻烦,那么如何次删除多个空白段落昵?下面我们就来编写一个功能小模块,并把已做成一个菜单为你解决问题 1.点击“工具--宏--宏”( 或按下快捷键Alt + F8 )打开“宏”对话框,在“宏名”下面一栏输人“DelBlank”,点击“创建”按钮。 2.打开。Visual Basic 编辑器后,在右侧代码窗口的sub DelBlank() 和End Sub 之间输入下面一段代码。 Dim i As Paragraph, n As Long Application.ScreenUpdating = False For Each i In ActiveDocument.Paragraphs If Len(i.Range) = 1 Then i.Range.Delete n = n + 1 End If Next MsgBox "共删除空白段落" & n & "个!" Application.ScreenUpdating = True 点击“文件一保存Normal保存当前的代码,然后关闭visual Basic 编辑器。

回车与换行回车与换行

“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别 换行(\n)就是光标下移一行却不会移到这一行的开头,回车(\r)就是回到当前行的开头却不向下移一行. Enter键按下后会执行\n\r这样就是我们看到的一般意义的回车了,所以你用16进制文件查看方式看一个文本,就会在行尾发现"\n\r" 在计算机还没有出现之前,有一种叫做电传打字机(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 回到本行行首这就会把这一行以前的输出覆盖掉 如: int main() { cout << "hahaha" << "\r" << "xixi" ; } 最后只显示xixi 而hahaha 背覆盖了 \n 是回车+换行把光标先移到行首,然后换到下一行,也就是下一行的行首位置 int main() { cout << "hahaha" << "\n" << "xixi" ; } 则显示 hahaha xixi ASCII表 ASCII值控制字符ASCII值控制字符ASCII值控制字符ASCII值控制字符 0 NUT 32 (space) 64 @ 96 、 1 SOH 33 !65 A 97 a 2 STX 34 ‖66 B 98 b 3 ETX 35 # 67 C 99 c 4 EOT 36 $ 68 D 100 d 5 ENQ 37 % 69 E 101 e

批量删除文档中空白行及换行或者回车

批量删除文档中空白行及换行或者回车 在对网页上的文章进行复制时,它的格式也被复制,因而在进行粘贴时便会发生很多麻烦,如要去除其中的其他非文字符号、软回车、制表符等,我们该怎么办?下面我经过学习实践,得出以下几种方法供大家参考。 【具体方法】 一、是将网上下载下来的文档粘贴到记事本中,再从记事本“复制” “粘贴”到Word文档,这样会自动删除许多空白行。 二、是如果还有一些带回车符的空白行,则执行“编辑”——“替 换”,在“查找内容”栏中输入“^p^p”(P前面的小符号是数字6的上档键),在“替换”栏中输入“^p”,最后单击“全部替换”按钮,删除多余的空白行。删除网上下载资料的换行符(象这种“↓”)在查找框内输入半角^l(是英文状态下的小写L不是数字1),在替换框内不输任何内容,单击全部替换,就把大量换行符删掉啦。 三、另外还可利用Word提供的“选择性粘贴”进行:在进行了复制 操作后,再转入Word,在其菜单栏上单击“编辑→选择性粘贴” 命令,所示操作。也可采用先把内容复制到记事本中再从记事本进行复制,然后转入到 Word文件中进行粘贴的间接方法完成。 常常只会去掉一部分。 【适用范围】 这些方法对office -word -批量删除回车、制表符、分页符、换行符、分栏符等都是有效的。

【提示注意】 以下是一些特殊符号的输入表示法,在文档中请注意识别:如:“^l”表示软回车,“^p”表示硬回车,“^t”表示制表符,“^m”表示手动分页符,“^+”表示长划线(—),“^=”表示短划线(–),“^l”表示人工换行符,^n表示分栏符等等 【特别说明】 换的办法删除空行时要注意两个问题(zsw): 1、分清文件中用的是手动换行符(“Shift+回车”),还是段落标记。 “^p^p”替换成“^p”并不能替换所有的空行。 2、如果文件中用的是手动换行符,那么就要用“^l^l”替换成吧“^l” (这里用的不是1,而是L字母的小写,也可以直接用替换对话框里的“特殊字符”,里面有“有手动换行符”),空行才能去除。 3、用“全部替换”时依然提示“Word已完成对文档的搜索并已完成 0处替换”这又是为什么呢?(为了搞清楚到底问题出在哪里,我又在Word文档中分别用手动换行符和回车符制造一些空行,用“^p^p”替换成“^p”和“^l^l”替换成“^l”来验证,看结果怎样)结果能顺利完成空行的删除就成功了。 4、特别注意:制造出一些换行符后,你看看他们的位置与文档中之 前的有什么差别,检验两个换行符之间有没有空格。 5、有就用用“^l ^l”(注意两个换行之间有一个空格)替换成“^l”, 或者“^p^p”替换成“^p”。一般就会有成果了。单击了几次全部替换,

Word应用技巧-去除换行符和空格

(一)批量删除中回车地方法 有时候我们从网页上复制文章到中时,往往会带有好多向下箭头地符号,这就是软回车符号(中软回车是同时按住得来地),如何才能删除这些软回车符号呢? 当然可以手动地一个个删,但实在太麻烦了,我们可以采取批量删除地方法. 点击菜单栏中地“编辑”→“替换” ,在“查找内容”里面输入^,“替换为”里面不输入任何字符,然后点“全部替换” ,就可以删除整个文档里面地软回车了. 上面地方法只是把所有地软回车都给删了,可是必要地段落换行还是需要地,所以下面介绍把软回车替换成硬回车. 点击菜单栏中地“编辑”→“替换” ,在“查找内容”里面输入^,“替换为”里面输入^,然后点“全部替换” 就了. 其实知道了软回车是^,硬回车是^,那么我们就可以灵活运用了. 比如我们经常会遇到一篇要打印地文档很长,中间有很多回车,如果段与段之间有两个回车,我们就可以利用替换成一个回车.这样就节省了很多空间. (二)大批量清除文档里多余地空格和空行 在工作中,经常会碰到由别地地方或文件中向文档中导入或粘贴文本,然后用编辑地情况.如果粘贴过来地文本中含有多余地空行同时文档又很大,那么一个个地手工删除空行实在太累人,有没有较便捷地方式呢? ()清除“文档”中多余地空格 选择“查找”,出现“查找”对话框,在“查找”内容中输入一个空格,把下方地“突出显示所在该范围找到地项目”选项选上,单击“查找全部”按钮,即可将文中地全部空格选中,单击“关闭”按钮,然后按下键盘上地键即可将全部空格删除了. ()快速清除“文档”多余空行 首先想一下空行地特点,实质是多个“段落标记”连在一起,利用地替换功能可以删除文章中地空行. 打开“编辑”菜单中地“替换”对话框,把光标定位在“查找内容”输入框中,按下“高级”按钮,选择“特殊字符”中地“段落标记”两次,在输入框中会显示为“^^”,在“替换为”输入框中用上面地方法插入一个“段落标记”,即“^”,然后按下“全部替换”按键,可删除单行地空行,对于多行空行,可进行重复替换,直到删除全部地空行为止. 在用替换地办法删除空行时要注意两个问题: .分清文件中用地是手动换行符(“回车”),还是段落标记.“^^”替换成“^”并不能替换所有地空行.如果文件中用地是手动换行符,那么就要用“^^”替换成“^”(这里用地不是,而是字母地小写,也可以直接用替换对话框里地“特殊字符”,里面有“有手动换行符”),空行才能去除. 有时遇到这种情况,可能是用手动换行符换行地.可能你也用了“^^”替换成“^”地办法,用“全部替换”时依然提示“已完成对文档地搜索并已完成处替换”这又是为什么呢?为了搞清楚到底问题出在哪里,试试在文档中分别用手动换行符和回车符制造一些空行,用“^^”替换成“^”和“^^”替换成“^”来验证,结果能顺利完成空行地删除.为什么自己输入地可以替换,网上下载地却不能呢?难道这里面还有“机关”?.注意空格地存在. 无奈之下,只得试用手工删除了.在删除地过程中,会发现它地秘密:原来每个空行地换行符前还有一个空格.空格成了折腾人地“罪魁祸首”!再用“^^”(注意两个换行之间有一个空格)替换成“^”,替换终于有成果了.单击了几次全部替换,又更改了几次“查找内容”,比如把“^^”替换成“^”.页面中再也没有空行了. 看来用替换地方法来删除空行时,要灵活对待查找地内容.使用查找替换地办法查找空段标记(点开高级>>特殊标记),然后替换那一栏不填. (三)批量删除空行,可用自带地替换功能即可,具体操作如下:

彻底搞清回车(0x0d)和换行(0x0a)

什么是0x0d和0x0a,可能大部分人都知道是回车和换行字符,但那个是回车,那个是换行?估计很多人都一时说不清楚了---也许你不相信,那就调查下周围的同事吧,估计会包含以下字眼“大概。我记得。回车是0x0d吧”。这次我移植arm-linux C的程序,至VC++,发现了很多不同,尤其是这个回车换行浪费我一上午的时间,我决定借此机会彻底搞定他们,这两个令人讨厌的家伙。 先说下浪费我一上午的那个东西----教训是很重要的,希望大家不要重蹈我的覆辙----,在arm-linux下,写二进制文件,打开文件的时候这样写就可以了fp_wthdisk = fopen(file_pathname,"w");,以w格式写就可以了。把这段程序移植到vc++后,发现一旦我向文件写入0x0a,前边就会自动加上0x0d,我以为是我写入数组的问题,反复检查也没有找到毛病,后来同事问我:“你是不是二进制格式写入的文件?”我说:“是呀,fwrite w格式,没有问题呀”,后来他说,你试试“wb格式写入一下”,改为wb后,果真就好了,厉害!,我对他竖起了大拇指。 看到这里,上边促使我下决心搞清楚回车换行的原因说完了。我想可能有人会犯同样错误的。但如果你对以下几个问题,都知晓了,就不必浪费时间,继续看下去了。 1.在Windows XP Visual C++下,按下回车键,系统获得的字符是0x0d还是0x0a,还是0x0d和0x0a? 2.回车(0x0d)的作用是回到本行的行首位置,表示本行已经输入完毕,停留在最后一个位置,还是光标转移到下一行的起始位置? 1.的答案是仅获得字符0x0d 2.答案是回车的作用只是移动光标至该行的起始位置 注意:回车和换行在不同环境下的意义不同,正如sleep(1)和Sleep(1)【注意S大写】这两个函数的不同一样,sleep(1)在linux下表示延时1s,而Sleep(1)在vc++下表示延时1ms,如果不依据环境来讨论回车和换行,是无意义的,只能是让人们误入歧途和浪费时间。 我只在arm-linux C和vc++下做了试验,请大家在接触其它语言环境下,小心推广,不行就自己动手做试验,最可靠。在arm-linux C和vc++下回车换行的意义如下。 回车代码:CR ASCII码:\ r ,十六进制,0x0d,回车的作用只是移动光标至该行的起始位置; 换行代码:LF ASCII码:\ n ,十六进制,0x0a,换行至下一行行首起始位置; Linux和windows下,回车试验 CODE: sprintf(versionbuf,"%s","TEST_VERSION_1_0_11\rabcdefg\r34567\n");

C++中回车换行和换行的区别

C++中回车换行(\n\r)和换行(\r)的区别 2013-01-02 11:36 43984人阅读windows下的点一下回车,效果是:回车换行,就是\r\n unix系统下的回车一下就是一个\n 给出如下代码: #include using namespace std; int main() { cout<< "this is the first line\n"; cout<< "this is the second line\r"; cout<< "this is the third line\n"; cout<< "this is the fouth line\r"; cout<< "this is the fifth line\n"; cout<< "end" ; return 0; } 运行结果如下: 回车换行(\n\r):每次光标移到下一行的行首位置处; 换行(\r):每次光标移到本行的行首位置处。 另见: 回车、换行的区别 他们间的区别其实是个回车换行的问题 先来段历史

回车”(Carriage Return)和“换行”(Line Feed)这两个概念的来历和区别。 符号ASCII码意义 \n 10 换行 \r 13 回车CR 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33,Linux/Unix 下的tty概念也来自于此)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。 于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。 后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。 在Windows中: '\r' 回车,回到当前行的行首,而不会换到下一行,如果接着输出的话,本行以前的内容会被逐一覆盖; '\n' 换行,换到当前位置的下一行,而不会回到行首; Unix系统里,每行结尾只有“<换行>”,即"\n";Windows系统里面,每行结尾是“<回车><换行>”,即“\r\n”;Mac系统里,每行结尾是“<回车>”,即"\r";。一个直接后果是,Unix/Mac 系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。 例: $ echo -en '12\n34\r56\n\r78\r\n' > tmp.txt

Linux和Windows回车换行

Unix/Linux和Windows回车换行zz Linux/Unix和Windows回车换行 linux/unix下的回车符与windows下的不同,linux/unix下的回车符是'0d',而在windows下侧是'0d0a',据说这和电脑刚开始发展时的电传打印机的速度有关,在网上搜到以下资料放到此处学习: 今天,我总算搞清楚“回车”(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 回到本行行首这就会把这一行以前的输出覆盖掉 如: int main() { cout << "hahaha" << "\r" << "xixi" ; } 最后只显示 xixi 而 hahaha 背覆盖了

回车符和换行符区别(Windows和Linux换行符的区别)

回车符和换行符区别 (Windows和Linux换行符的区别) 回车符号和换行符号产生背景 关于“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别。 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。 于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。 这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。 后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。 Unix系统里,每行结尾只有“<换行>”,即“\n”; Windows系统里面,每行结尾是“ <回车><换行>”,即“\r\n”; Mac系统里,每行结尾是“<回车>” ,即“\r”; 一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。 具体区别 先看个例子,网上找的: 先生成一个换行(\n, 0x0A)和回车(\r, 0x0D)组合的文本 $ echo -en '12\n34\r56\n\r78\r\n' > tmp 以十六进制方式查看文本 $ od -t x1 tmp 0000000 31 32 0a 33 34 0d 35 36 0a 0d 37 38 0d 0a 0000016 在Linux的vim中的显示效果:

Word应用技巧-去除换行符和空格

批量删除Word中回车的方法 (一)批量删除Word中回车的方法 有时候我们从网页上复制文章到Word中时,往往会带有好多向下箭头的符号,这就是软回车符号(Word中软回车是同时按住shift+enter得来的),如何才能删除这些软回车符号呢? 当然可以手动的一个个删,但实在太麻烦了,我们可以采取批量删除的方法。 点击菜单栏中的“编辑”→“替换” ,在“查找内容”里面输入^l,“替换为”里面不输入任何字符,然后点“全部替换” ,就可以删除整个文档里面的软回车了。 上面的方法只是把所有的软回车都给删了,可是必要的段落换行还是需要的,所以下面介绍把软回车替换成硬回车。 点击菜单栏中的“编辑”→“替换” ,在“查找内容”里面输入^l,“替换为”里面输入^p,然后点“全部替换” 就OK了。 其实知道了软回车是^l,硬回车是^p,那么我们就可以灵活运用了。 比如我们经常会遇到一篇要打印的文档很长,中间有很多回车,如果段与段之间有两个回车,我们就可以利用替换成一个回车。这样就节省了很多空间。 (二)大批量清除WORD文档里多余的空格和空行 在工作中,经常会碰到由别的地方或文件中向Word文档中导入或粘贴文本,然后用Word编辑的情况。如果粘贴过来的文本中含有多余的空行同时文档又很大,那么一个个地手工删除空行实在太累人,有没有较便捷的方式呢? (1)清除“Word文档”中多余的空格 选择“查找”,出现“查找”对话框,在“查找”内容中输入一个空格,把下方的“突出显示所在该范围找到的项目”选项选上,单击“查找全部”按钮,即可将文中的全部空格选中,单击“关闭”按钮,然后按下键盘上的Delete键即可将全部空格删除了。 (2)快速清除“Word文档”多余空行 首先想一下空行的特点,实质是多个“段落标记”连在一起,利用Word的替换功能可以删除文章中的空行。 打开“编辑”菜单中的“替换”对话框,把光标定位在“查找内容”输入框中,按下“高级”按钮,选择“特殊字符”中的“段落标记”两次,在输入框中会显示为“^p^p”,在“替换为”输入框中用上面的方法插入一个“段落标记”,即“^p”,然后按下“全部替换”按键,可删除单行的空行,对于多行空行,可进行重复替换,直到删除全部的空行为止。

在word中 直接回车和按着shift

在word中直接回车和按着shift+回车有什么不同 一、图片中前三个(直接回车):是段落的分隔的;如果要改变这一段的格式,比如调整缩进,或格式刷等,那么只能改变这一段。 图片中后三个(shift+回车):是另一种段落的分隔;如果要改变这一段落格式,则能改变相邻的所有的,段尾用向下箭头的段落格式。 二、回车是新生成一个段落,而Shift+回车只是换行。拿自动编号来说,当你回车时,编号数会变化,但Shift+回车时,编号数是不会变化的。 三、手工换行符和回车符的应用区别: 在WORD中,回车符为文章的上一个段落的结束,新一个段落的开始;而SHIFT+ENTET,是在认为有必要的时候(即不满行)时转到下一行中,但此时WORD则不认为是一个段落;而自动换行则是在页面设置中规定的每行多少符后自动换行(当然你可以在格式/段落/中文版式中设置一些诸如允许西文在单词中间换行等);而CTRL+ENTER则是手动分页符。四、手工换行符与回车符的应用区别主要在于: 使用回车符产生的段落:真正的段落。 手工换行符产生的段落:在两个回车符之间运用手工换行符所产生的段落,只能使用同种格式。简单地说,手工换行符介于软回车(自动换行)和硬回车(回车符)之间,即保留了软回车的性质(不论多少个手工换行产生的段落,仍只是行的性质,直到出现回车符后才算一个完整的段落),达到硬回车的页面视觉效果(显示和打印的是按作者需要在不满行时转到下一行)。 第一种叫硬回车,第二种脚软回车。比如,在使用“项目符号和编号”时,使用硬回车下一行会自动添加项目符号和编号,如果不想添加就是用软回车。 shift+enter是软回车(回车后的段落仍属于前一个段落,只不过重新换 行),enter是硬回车,回车后的文字属于下一段落. 它们的标记也是不同的,一个是向下的箭头,一个是弯曲箭头. 直接按enter,在处理段落时,会分成两个段落处理 按shift+enter,在处理段落时,会作为一个段落处理

相关主题
相关文档
最新文档