输出缓冲区的刷新
2012-02-08 23:48
176 查看
重读C++ Primer,才发现endl不仅仅是换行那么简单,还有刷新缓冲区的作用。
“程序员经常在调试过程中插入输出语句,这些语句都应该刷新输出流。忘记刷新输出流可能会造成输出停留在缓冲区中,如果程序崩溃,将会导致对程序崩溃位置的错误判断”。
将信息写入控制台、磁盘文件之前都会在缓冲区中呆上一会儿。如果不刷新缓冲区,有的编译器不会将信息写入,而让其停在缓冲区中;有的编译器会让信息在缓冲区待一会,然后再输出。
如果在这时,程序崩溃了,可能会造成磁盘文件的缺失,带来不必要的麻烦。
所以我们有必要亲自去刷新缓冲区,如下例:
cout << "hi!" << flash;//刷新缓冲区
cout << "hi!" << ends;//结尾添加NULL并刷新缓冲区
cout << "hi!" << endl;//结尾添加\n并刷新缓冲区
“程序员经常在调试过程中插入输出语句,这些语句都应该刷新输出流。忘记刷新输出流可能会造成输出停留在缓冲区中,如果程序崩溃,将会导致对程序崩溃位置的错误判断”。
将信息写入控制台、磁盘文件之前都会在缓冲区中呆上一会儿。如果不刷新缓冲区,有的编译器不会将信息写入,而让其停在缓冲区中;有的编译器会让信息在缓冲区待一会,然后再输出。
如果在这时,程序崩溃了,可能会造成磁盘文件的缺失,带来不必要的麻烦。
所以我们有必要亲自去刷新缓冲区,如下例:
cout << "hi!" << flash;//刷新缓冲区
cout << "hi!" << ends;//结尾添加NULL并刷新缓冲区
cout << "hi!" << endl;//结尾添加\n并刷新缓冲区
相关文章推荐
- C++重载输入和输出操作符以及IO标准库中的刷新输入缓冲区残留字符问题
- C++重载输入和输出操作符以及IO标准库中的刷新输入缓冲区残留字符问题
- c++输出缓冲区刷新
- c++输出缓冲区刷新
- C++ 几种刷新输出缓冲区方式
- printf写入标出输出的缓冲区刷新条件
- C++重载输入和输出操作符以及IO标准库中的刷新输入缓冲区残留字符问题
- C++输出缓冲区刷新
- c++输出缓冲区刷新
- 为什么输入输出要刷新缓冲区
- 20110327-8.3-warning-如果程序崩溃了,则不会刷新缓冲区,最好的方法是保证所有的输出操作都显式地调用了flush或endl
- 输出js及时刷新页面
- C++输入输出缓冲区的刷新问题
- PHP的输出缓冲区
- Perl输出刷新问题
- fork与输出缓冲区
- PHP输出缓冲区
- =============什么是刷新缓冲区???
- 缓存的刷新——输出换行符
- 标准输出、标准日志输出、标注错误输出、清空缓冲区