一级棒(Eachfun)
偷猫的个人主页
一级棒(Eachfun) - 读书笔记 - C++ Primer - 输出缓冲区要及时刷新
RSS订阅
输出缓冲区要及时刷新
发表时间:2006-09-12 00:19:00 关键词:C++,MFC,VC,Primer,编程,教程,读书

  “Please Input Your Name:_”
  如果您编写的程序有以上功能,在显示一行提示语后等待输入,可惜的是用户只看见了光标在一闪一闪,却没看见那行提示语,那岂不是一片好心喂了狗了?
  将信息写入控制台、磁盘文件之前都会在缓冲区中呆上一会儿,这么做的优点不用我来说,但是缺点也很明显:如果没有及时刷新缓冲区,将可能会造成损失。比如程序的崩溃会造成磁盘文件的残缺,给调试带来麻烦。
  那么,我们要做的就是在必要的时候亲自刷新缓冲区。“endl”的作用就突显出来了。
  endl的主要功能当然是刷新缓冲区,另外还有一个功能就是写入“ ”,所以,对于以回车换行结束的输出,用endl是最合适不过的了。如果不需要回车换行,也有替代品:
cout << "hi!" << flash;//刷新缓冲区
cout << "hi!" << ends;//结尾添加NULL并刷新缓冲区
cout << "hi!" << endl;//结尾添加并刷新缓冲区
  在写本文时,我专门编程序试图看一看本文开头的例子,结果我没有主动刷新缓冲区,却总是能看到那条提示,我以为是cin默认和cout绑定了,试着加入“cin.tie(0);”,结果依然可以看到。失败!

本站特约顾问律师常州东晟律师事务所朱立律师(电话13915029670,QQ646146109)提醒您:
本站文章皆为作者原创,其它媒体(包括但不限于报刊、杂志、网站、电视、电台)未经作者书面许可严禁转载(或部分摘录)!
相关评论
  • 那个flash应该是flush,不过还是谢谢,对我很有帮助。刚开始写成flash,却出错,之后一查,发现是flush.
    person小郑 link未填 QQ未填 emailsciencehero@163.com 时间:2009-03-08 01:31:00
1
发表评论
称呼:
QQ:
邮箱:
链接:
内容:
搜索: 百度搜索 Google搜索
Copyright©2000 - 2011 Eachfun.Com, All Rights Reserved 一级棒网络
备案号忘了带来
一级棒建站系统 http://www.eachfun.com 一级棒版权所有,未经许可不得商用!