endl与\n的用法区别

学习C++的时候,老师说换行有两种写法。

1 //方法一
2 
3 std::cout<<"你好!\n李华";
4 
5 //方法二
6 
7 std::cout<<"你好!"<<endl<<"李华";

那么既然一种就能换行,为啥还要搞出两种呢?锻炼我们的记忆力吗?我想不是,带着疑问,我开始了网络搜索之旅。

除了换行,endl还具有其他功能。

“\n”只是功能单一的换行。

而“endl”除了换行还会调用flush()函数,刷新缓冲区,让数据直接写入文件或者输出到屏幕上。

对于急着显示在屏幕上,立即将计算结果输出到屏幕上的情况,可以选择“endl”。如果你不急着输出到屏幕,想提高代码的执行效率,让它更快,你可以选用“\n”。因为“\n”不会刷新缓冲区,所以速度更快。

我感觉这样说,还是说的不够明白。读者未必非常清楚,为了彻底了解,彻底说的太大了,应该是更进一步了解。我继续搜索,这个作者的博文满足了我的需要,如果大家还是看不懂就看他的吧。http://www.cnblogs.com/XqwKen/p/4564318.html

他说:

平时在控制台应用中我们是感觉不出使用“\n”“endl”的区别。

因为“\n”在换行后并不清空缓冲槽(或者说缓冲区),但是当它遇到下行代码时就会立即清槽输出到设备(例如控制台屏幕)。而“endl”则在下一行代码之前,就清槽输出了。所以它能更快的输出显示。

什么时候能很明显的区别二者呢?

当程序崩溃时,“\n”只会将数据留存在缓冲槽内,没来得及输出。而“endl”却完成了输出。
原文链接: https://www.cnblogs.com/arvintang/p/5113688.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/227055

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 下午1:28
下一篇 2023年2月13日 下午1:28

相关推荐