学习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的用法区别的更多相关文章

  1. order_by_、group_by_、having的用法区别

    写于 2012-11-20 22:14  doc文档上. Having 这个是用在聚合函数的用法.当我们在用聚合函数的时候,一般都要用到GROUP BY 先进行分组,然后再进行聚合函数的运算.运算完后 ...

  2. html中的alt和title用法区别

    html中的alt和title用法区别 首先明确一下概念,alt是html标签的属性,而title既是html标签,又是html属性.title标签这个不用多说,网页的标题就是写在<title& ...

  3. 转 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 ...

  4. OC .(点)与->(箭头)用法区别

    这两天同学总是问OC里.和->的用法区别,当时回答的不是很好,周末查了一下,大概清楚了,在这里记录一笔. 先看这个例程 #import <Foundation/Foundation.h&g ...

  5. php中strstr、strrchr、substr、stristr四个函数用法区别

    php中strstr.strrchr.substr.stristr四个函数用法区别: php中strstr strrchr substr stristr这四个字符串操作函数特别让人容易混淆,常用的是s ...

  6. mysql SELECT FOUND_ROWS()与COUNT(*)用法区别

    在mysql中 FOUND_ROWS()与COUNT(*)都可以统计记录,如果都一样为什么会有两个这样的函数呢,下面我来介绍SELECT FOUND_ROWS()与COUNT(*)用法区别   SEL ...

  7. php中print_r、var_dump和var_export几个函数的用法区别

    php中print_r.var_dump和var_export几个函数的用法区别

  8. Oracle中 (+)与left join 的用法区别

    Oracle中 (+)与left join 的用法区别 原创 2017年01月11日 13:33:42 6648 select * from a,b where a.id=b.id(+); (+)写在 ...

  9. String split方法与Guava Splitter用法区别

    String split方法与Guava Splitter用法区别 今天同事写了一段使用String split方法的代码,如下所示,同事期望得到的是字符"1",但是没想到却得到空 ...

随机推荐

  1. 每天学一点——python注释规范

    python注释规范 python注释语法 这个是注释 注释是不影响代码运行的 当然注释也是有书写规范的,就像图片中的 注释前面#加空格再加上这条代码的注释(单行注释用#) 不然你会得到下面的结果 * ...

  2. x86-2-保护模式

    x86-2-保护模式 操作系统负责计算机上的所有软件和硬件的管理,它可以百分百操作计算机的所有内容.但是,操作系统上编写的用户程序却应当有所限制,只允许用户程序访问属于自己程序的内容,不然整个生态就很 ...

  3. java字符串比较是否都可直接使用==?

    java字符串比较,两个字符串相不相等,直接用==来判断可以吗?或者判断两个字符串不相等,直接用!=? 不能 两个对象进行比较,如果使用==符号,那么比较的是这两个对象的"引用"( ...

  4. 初识python 之 ImportError: No module named _ssl

    场景 安装好python之后,导入ssl模块报错: ImportError: No module named _ssl 解决方法 查看openssl.openssl-devel是否安装 rpm -qa ...

  5. 学习git&github

    详细学习视频: 链接:https://pan.baidu.com/s/1Vub3YTo7uUUuGCJUCabBRQ 提取码:6q9x 一.git基本工作流程 我们先来理解下Git 工作区.暂存区和版 ...

  6. git 生成忽略文件

    一.在.git的同级目录下打开git bash 二.在命令行输入 三.在生成的文件中添加忽略提交的文件夹名称 来自为知笔记(Wiz)

  7. vim安装使用pathogen

    pathogen是什么? pathogen一般作为vim新手的第一个插件,用来统一管理vim插件包, (官方解释)非常容易的管理你的 'runtimepath' ,在实际项目中,vim-pathoge ...

  8. spring cloud feign 报错 feign.FeignException$MethodNotAllowed: status 405 reading 解决

    1.前言 出现报错 feign.FeignException$MethodNotAllowed: status 405 reading XXXXX 需要检查 接口的请求参数是否一致 请求参数是否正确添 ...

  9. WebLogic任意文件上传漏洞(CVE-2019-2725)

    一,漏洞介绍 1.1漏洞简介 Oracle weblogic反序列化远程命令执行漏洞,是根据weblogic的xmldecoder反序列化漏洞,只是通过构造巧妙的利用链可以对Oracle官方历年来针对 ...

  10. Android官方文档翻译 三 1.1Creating an Android Project

    Creating an Android Project 创建一个Android项目 An Android project contains all the files that comprise th ...