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”却完成了输出。
endl与\n的用法区别的更多相关文章
- order_by_、group_by_、having的用法区别
写于 2012-11-20 22:14 doc文档上. Having 这个是用在聚合函数的用法.当我们在用聚合函数的时候,一般都要用到GROUP BY 先进行分组,然后再进行聚合函数的运算.运算完后 ...
- html中的alt和title用法区别
html中的alt和title用法区别 首先明确一下概念,alt是html标签的属性,而title既是html标签,又是html属性.title标签这个不用多说,网页的标题就是写在<title& ...
- 转 SQL Union和SQL Union All两者用法区别效率以及与order by 和 group by配合问题
SQL Union和SQL Union All两者用法区别效率以及与order by 和 group by配合问题 SQL Union和SQL Union All用法 SQL UNION 操作符 UN ...
- OC .(点)与->(箭头)用法区别
这两天同学总是问OC里.和->的用法区别,当时回答的不是很好,周末查了一下,大概清楚了,在这里记录一笔. 先看这个例程 #import <Foundation/Foundation.h&g ...
- php中strstr、strrchr、substr、stristr四个函数用法区别
php中strstr.strrchr.substr.stristr四个函数用法区别: php中strstr strrchr substr stristr这四个字符串操作函数特别让人容易混淆,常用的是s ...
- mysql SELECT FOUND_ROWS()与COUNT(*)用法区别
在mysql中 FOUND_ROWS()与COUNT(*)都可以统计记录,如果都一样为什么会有两个这样的函数呢,下面我来介绍SELECT FOUND_ROWS()与COUNT(*)用法区别 SEL ...
- php中print_r、var_dump和var_export几个函数的用法区别
php中print_r.var_dump和var_export几个函数的用法区别
- Oracle中 (+)与left join 的用法区别
Oracle中 (+)与left join 的用法区别 原创 2017年01月11日 13:33:42 6648 select * from a,b where a.id=b.id(+); (+)写在 ...
- String split方法与Guava Splitter用法区别
String split方法与Guava Splitter用法区别 今天同事写了一段使用String split方法的代码,如下所示,同事期望得到的是字符"1",但是没想到却得到空 ...
随机推荐
- JavaScript交互式网页设计 • 【第2章 JavaScript函数与事件】
全部章节 >>>> 本章目录 2.1 JavaScript 自定义函数 2.1.1 函数的定义 2.1.2 函数的调用 2.1.3 函数的参数 2.1.4 函数的返回值 2 ...
- 射频FEM介绍
FEM介绍 1. 什么是FEM 1.1 FEM简介 FEM,Front-end Modules,即就是前端模块.硬件电路中的前端模块完成射频信号的发送放大以及接收放大(with bypass).滤波, ...
- linux的用户主目录(~)指向问题
最近在Ubuntu上安装rabbitmq之后,发现~目录指向出问题了,原本~指向当前shell登录的用户主目录,如下图 现在变成了这样: 登录之后进入的不是~目录,而是直接显示的主目录,而~指向的目录 ...
- [学习笔记] RabbitMQ的安装使用
安装 使用命令行安装,会自动管理依赖(推荐): choco install rabbitmq 安装包安装: 以管理员身份安装64位的 Erlang. 下载并安装 RabbitMQ 服务.下载地址. R ...
- CSS基础 装饰 元素本身隐藏和显示效果及案例
1.visibility:hidden; 2.display: none: 区别: 1.visibility:hidden 隐藏元素本身,且在网页中 占位置 2.display:none; 隐藏元素本 ...
- Pytest_用例执行顺序(5)
在unittest中,测试用例的执行顺序与测试用例的名称有关,按照名称的ascii码排序的,并不是按照用例的编写顺序执行的. pytest默认是按用例的编写顺序执行的 我们可以通过第三方包 pytes ...
- centos7安装使用vagrant
https://blog.51cto.com/u_12173069/2312621 #download virtualbox https://www.virtualbox.org/wiki/Linux ...
- 使用swagger生成API文档
有时候一份清晰明了的接口文档能够极大地提高前后端双方的沟通效率和开发效率.本文将介绍如何使用swagger生成接口文档. swagger介绍 Swagger本质上是一种用于描述使用JSON表示的RES ...
- Zuul的应用
一.介绍 注:Zuul中默认就已经集成了Ribbon负载均衡和Hystix熔断机制.但是所有的超时策略都是走的默认值,比如熔断超时时间只有1S,很容易就触发了. 二.依赖 <dependency ...
- 【基因组学】maker的安装和注释
本文默认读者有一定的生信基础,没有基础的可以阅读以前的笔记内容. maker作为比较受人认可的基因组注释软件,其流程较为清晰简单. 不知何故,我的conda无法安装maker,故而采用手动安装方式. ...