缓冲区的效果

下面的示例显示缓冲的效果。 您可能希望程序打印 please wait,等待 5 秒钟,然后执行。 ,因为输出,,但不一定适用此类。

// effects_buffering.cpp
// compile with: /EHsc
#include <iostream>
#include <time.h>
using namespace std;

int main( )
{
   time_t tm = time( NULL ) + 5;
   cout << "Please wait...";
   while ( time( NULL ) < tm )
      ;
   cout << "\nAll done" << endl;
}

,当消息出现时,若要在逻辑上进行程序工作, cout 对象必须为自身。 若要刷新 ostream 对象,请将其发送 flush 操控器:

cout << "Please wait..." << flush;

此步骤会刷新缓冲区,确保消息打印在等待之前。 还可以使用 endl 操控器,它会刷新缓冲区和输出支持返回换行符,也可以使用 cin 对象。 此对象 (与 cerrclog 对象) 通常附加到 cout 对象。 因此,对 cin 的所有使用 (或 cerrclog 对象) 对于 cout 对象。

请参见

参考

输出流