您的位置:首页 > 编程语言 > C语言/C++

C++中输入输出缓冲区的刷新

2016-03-12 11:54 260 查看
<分析>:未刷新缓存区造成输出停留在缓存区中,如果系统崩溃,将会导致程序对缓存区的位置的错误判断,所以要定时刷新缓存区,以下是缓存区刷新的几种方法:

(1)程序正常结束。作为main返回工作的一部分,将清空所有的输出缓冲区。

(2)在一些不确定的时候,缓冲区可能已经满了,在这种情况下,缓冲区将会在写下一个值之前刷新。

(3)用操纵符显式地刷新缓冲区,如用endl、ends、flush。例如:

cout<<”hi”<<flush;
cout<<”hi”<<ends;
cout<<”hi”<<endl;
(4)在每次输出操作执行完毕后,用unitbuf操纵符设置流的内部状态从而清空缓冲区。例如:

cout<<unitbuf;------每次输出都刷新
cout<<nounitbuf------恢复正常状态
(5)可将输出流与输入流关联起来,在读输入流时将刷新其关联的输出缓冲区。

(6)默认情况下,cerr不缓冲、clog、cout缓冲。

(7)如果程序不正常退出,则不进行缓存区刷新。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: