다음을 통해 공유


버퍼링 효과

다음 예제에서는 버퍼링 효과 보여 줍니다. 프로그램에서 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 사용할 수 있습니다. 이 개체는 cerr 또는 clog 개체와 함께 일반적으로 cout 개체에 연결됩니다. 따라서 cin , cerr 또는 clog 개체를 사용하면 cout 개체가 플러시됩니다.

참고 항목

출력 스트림