0
点赞
收藏
分享

微信扫一扫

读书笔记:输出缓冲区的管理

kiliwalk 2022-03-11 阅读 54

输出缓冲区的刷新

我们的程序已经使用过 endl 操纵符,用于输出一个换行符并刷新缓冲区。
除此之外,C++ 语言还提供了另外两个类似的操纵符。第一个经常使用的 flush,
用于刷新流,但不在输出中添加任何字符。第二个则是比较少用的 ends,这个
操纵符在缓冲区中插入空字符 null,然后后刷新它:

cout << "hi!" << flush; // flushes the buffer; adds no data 
 cout << "hi!" << ends; // inserts a null, then flushes the buffer 
 cout << "hi!" << endl; // inserts a newline, then flushes the buffer 

unitbuf 操纵符

如果需要刷新所有输出,最好使用 unitbuf 操纵符。这个操纵符在每次执
行完写操作后都刷新流:
cout << unitbuf << "first" << " second" << nounitbuf;
等价于:
cout << "first" << flush << " second" << flush;
nounitbuf 操纵符将流恢复为使用正常的、由系统管理的缓冲区刷新方式。

在这里插入图片描述

举报

相关推荐

0 条评论