您的位置:首页 > 其它

输出缓冲区的刷新

2012-02-08 23:48 176 查看
重读C++ Primer,才发现endl不仅仅是换行那么简单,还有刷新缓冲区的作用。

“程序员经常在调试过程中插入输出语句,这些语句都应该刷新输出流。忘记刷新输出流可能会造成输出停留在缓冲区中,如果程序崩溃,将会导致对程序崩溃位置的错误判断”。

将信息写入控制台、磁盘文件之前都会在缓冲区中呆上一会儿。如果不刷新缓冲区,有的编译器不会将信息写入,而让其停在缓冲区中;有的编译器会让信息在缓冲区待一会,然后再输出。

如果在这时,程序崩溃了,可能会造成磁盘文件的缺失,带来不必要的麻烦。

所以我们有必要亲自去刷新缓冲区,如下例:

cout << "hi!" << flash;//刷新缓冲区

cout << "hi!" << ends;//结尾添加NULL并刷新缓冲区

cout << "hi!" << endl;//结尾添加\n并刷新缓冲区
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: