黑马程序员技术交流社区

标题: \r 和\n的区别 [打印本页]

作者: 杨志恒    时间: 2015-6-23 13:38
标题: \r 和\n的区别
\r : return 到当前行的最左边。

\n: newline 向下移动一行,并不移动左右。

Linux中\n表示回车+换行;

Windows中\r\n表示回车+换行。

Mac中\r表示回车+换行。

在windows中换行是\n\r,\n表示换行,\r表示回车,\r和一种老式打印机有关。
在unix和Linux中换行是\n。
所以在windows下打开Linux或unix的文档时,所有内容会在一行中展示,因为没有\r。但是一些文本编辑器可以在windows下识别Linux或unix的换行,也就可以正常显示了。
在Linux或unix下打开windows文档会发现每行末尾多一个类似^M的符号,就是多了一个\r的造成的。

历史:
回车”(Carriage Return)和“换行”(Line Feed)这两个概念的来历和区别。
在计算机还没有出现之 前,有一种叫做电传打字机(Teletype Model 33,Linux/Unix下的tty概念也来自于此)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正 好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车(return)”,告诉打字机把打印头定位在左边界;另一个叫做“换行(newline)”,告诉打字机把纸向下移一行。这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。
作者: home7192    时间: 2015-6-23 14:18
总结的太好了,终于不容易记混。另外Dos换行,是认识'\n'的哦!因为他是最基底的程序。
作者: SimpleT    时间: 2015-6-23 14:30
学习了 :handshake
作者: 一口老郭    时间: 2015-6-23 20:41
又温习了一遍,谢谢!
作者: 发抖的_DtYJA    时间: 2015-6-23 21:12

又温习了一遍,谢谢!
作者: a229473826    时间: 2015-6-23 21:15
感谢楼主分享
作者: 谢志宝    时间: 2015-6-23 21:20
感谢,很好的小知识点
作者: 十五号的人生    时间: 2015-6-23 21:21
涨知识了      
作者: 一败tu地    时间: 2015-6-23 21:46
不错,这个是干货,收藏了
作者: 腹黑生姜    时间: 2015-6-23 22:09
很好的!
作者: liu100chao    时间: 2015-6-23 22:20
赞一个哈!!!
作者: 安安安    时间: 2015-6-23 22:32
感谢分享。。
作者: 马也keyboard    时间: 2015-6-23 22:52
很具体,学习一下
作者: GUO18735177413    时间: 2015-6-24 06:51
得到了有一个新知识,赞一个!!!
作者: 汪磊の    时间: 2015-6-24 14:50
学习了,楼主
作者: 水壶vs兔子    时间: 2015-6-24 16:40
复习了一遍,谢了!
作者: 帅帅loyal    时间: 2015-6-24 18:10
学习了,谢谢
作者: 进军黑马    时间: 2015-6-24 22:57
很好。。。。。。。。。。。。。。。
作者: 半山岩    时间: 2015-7-5 21:31
总结得不错啊
作者: 胡家兵    时间: 2015-7-5 21:46
必须顶一个  总结的正好
作者: 为了理想而奋斗    时间: 2015-7-5 21:49
再次温习一遍。
作者: niuniu123456    时间: 2015-7-8 21:20
还有"\t"或"\n"在windows中是换行,“\l”在linux中换行.....还有好多呢!
作者: 鲁枝权双元    时间: 2015-7-8 22:14
总结的很好啊,不错的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2