网上找的一篇博文,原文搞错了,应该是\r\n,本文已改正!——回车CR和换行line feed
2014-02-18 16:07
197 查看
"回车"(carriage return)和"换行"(line feed)与 ASCII表
关于“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别。在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。
这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。
后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。
Unix
系统里,每行结尾只有“<换行>”,即“\n”;Windows系统里面,每行结尾是“<回车><换行>”,即“ \r\n”;Mac系统里,每行结尾是“<回车>”。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会
变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
c语言编程时(windows系统)
\r (return)就是return 回到 本行 行首 这就会把这一行以前的输出 覆盖掉
如:
int main() {
cout << "hahaha" << "\r" << "xixi" ;
}
最后只显示 xixi 而 hahaha 背覆盖了
\n (newline)是回车+换行 把光标 先移到 行首 然后换到下一行 也就是下一行的行首拉
int main() {
cout << "hahaha" << "\n" << "xixi" ;
}
则 显示
hahaha
xixi
ASCII表
相关文章推荐
- 昨天在微信里看到的一篇文章,应该不算是个新闻,但是还是值得仔细读一下。特别是对于那些在一个公司干了很多年却没有发展,或者每年跳槽两三次的同学确实应该反思看一看。原文地址 以下是正文 我曾经带过一个
- 程序与生活:网上看的一篇文章,据说越有钱越应该看
- 程序与生活:网上看的一篇文章,据说越有钱越应该看
- 单片机高手之路(网上看到的一篇很好的的学习博文)
- 网上的一篇Facebook早期打江山时候艰辛的博文
- 设计模式---访问者模式(应该是最后一篇了)
- 从一篇博文说起
- 最后一篇博文
- 其实我真是觉得我应该写一篇总结来总结一下自己的生活的了
- 怎样让自己的博文在网上被搜索到?
- 上上上个博文的标题不对,应该是集合方法,这回才是数组方法
- 网上找到的一篇讲解select机制非常详细透彻的文章,极力推荐
- 转一篇有用的博文《当你学不进去的时候,不妨看看大脑是怎么想的》
- 谷歌如何评价一篇博文是否是软文
- 网上找到的一篇java笔试文章
- 博文视点大讲堂第45期——我们应该向魔兽世界学习什么 圆满结束
- 腾讯防刷负责人:基于用户画像大数据的电商防刷架构 - 本文出自BI168大数据社区,更多精彩请点击 原文地址:http://www.bi168.cn/>>http://www.bi168.cn/th
- [C++-Tool] C++测试工具 gmock , 网上博文收集
- 为昨天一篇博文【asp.net,对于一个有点经验的猴子,我的要求高么?】做点解释
- 计算机中换行(LF)和回车(CR)