- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
回车符和换行符区别(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中的显示效果:在windows的记事本中的显示效果
编程相关:
文本文件的行结束符,传统上 PC机 用 CRLF,苹果机用CR,unix 用 LF。【CR -- 回车符,c语言\r】。【LF -- 换行符, c语言\n】。
不同计算机上c语言统一规定为::文本文件的行结束符一律变成一个符号LF,也就是换行符,也就是new line符, 也就是\n. “回车和换行符转换成一个换行符”
-- 对PC机而言,文本文件行结束符,CRLF读入后,丢掉CR,留 LF. 例如fgets() 读入一行,行尾只有LF,没有CR.
在解析文本或其他格式的文件内容时,常常要碰到判定回车换行的地方,这个时候就要注意既要判定\r\n又要判定\n。写程序时可能得到一行,将其进行trim掉\r,这样能得到你所需要的string了。
\n 10 换行(newline)\r 13 回车(return)
?
学习笔记:
以前c++读取文本的时候,就发现windows和linux有所不同了,今天看了这篇文章,明白了一个大概。学习C/C++是在windows中入门,所以没有意识到,在读取一行的时候,由于C语言的规定,已经去掉了MS用来换行的\r\n中的\r,所以我们一直没感觉到\r的存在。甚至说有两个字符用于换行的时候,甚至感觉不解,明明就是一个字符嘛。
后来在Linux中读取了Windows的文件,发现不一样了。因为Linux默认是用\n作为换行,所以编译器默认不用处理\r,所以从Windows过来的文本用getline读取的时候,最后一个字符其实是\r,这样就和我们的想法有所区别。所以要判断一下,如果最后一个字符时\r,那么简单将其改为\0就ok了。
您可能关注的文档
- 习题与答案--1至3章.ppt
- 习作二:写身边熟悉人.ppt
- 买卖合同与加工承揽合同区别.doc
- 二年级上数学-乘加乘减练习课人教新课标.ppt
- 二次函数y=a(x-h)2图像和性质.doc
- 二次函数图像特征与a,b,c符号111.doc
- 二次函数图象与性质 2.二次函数y=ax2+bx+c图象与性质 第2课时 二次函数y=a(x-h)2图象与性质.ppt
- 二年级数学下册 应用题 沪教版.ppt
- 二次函数图像位置与a、b、c、b2-4ac符号关系.doc
- 二次函数系数a、b、c与图像关系.doc
- 2025年网络文学平台版权运营模式创新与版权保护体系构建.docx
- 数字藏品市场运营策略洞察:2025年市场风险与应对策略分析.docx
- 全球新能源汽车产业政策法规与市场前景白皮书.docx
- 工业互联网平台安全标准制定:安全防护与合规性监管策略.docx
- 剧本杀剧本创作审核标准2025年优化与行业自律.docx
- 2025年新能源电动巡逻车在城市安防中的应用对城市环境的影响分析.docx
- 全渠道零售案例精选:2025年行业创新实践报告.docx
- 2025年网约车司乘纠纷处理机制优化与行业可持续发展报告.docx
- 2025年宠物烘焙食品市场法规政策解读:合规经营与风险规避.docx
- 2025年宠物行业数据安全监管政策影响分析报告.docx
文档评论(0)