C++刷新缓冲区
2016-01-11 22:22
453 查看
今天看到有段代码在输出的时候用到了cout << n << std::flush; 从名称来看知道std::flush的作用肯定是刷新缓冲区,但是测试一下他与cout << n; 感觉没有任何区别。于是只能问度娘了。果然颇有收获。cout << n; 是系统每隔一段时间进行检测输出的。但是由于间隔比较短,让人以为和没有flush一样。而且还知道了,cout << n << std::endl
的作用不止是回车换行,他还有刷新缓冲区的作用。c++中还有ends,unitbuf,nounitbuf等用来刷新缓冲区,简单来说刷新缓冲区的作用就是为了让缓冲区的信息立即强制输出。
下面有一段代码让你对刷新缓冲有明显的概念:
所以编程要形成好的习惯,记得刷新缓冲区。
的作用不止是回车换行,他还有刷新缓冲区的作用。c++中还有ends,unitbuf,nounitbuf等用来刷新缓冲区,简单来说刷新缓冲区的作用就是为了让缓冲区的信息立即强制输出。
下面有一段代码让你对刷新缓冲有明显的概念:
#include <windows.h> #include <iostream> using namespace std; int main() { setvbuf(stdout, NULL, _IOLBF, 1024); //设置控制台输出为行缓存模式,把缓冲区与流相关 cout << "hello world\n" << flush; cout << "hello world\n"; Sleep(5000); cout << "leeboy" << endl; system("pause"); return 0; }
所以编程要形成好的习惯,记得刷新缓冲区。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性