Compartilhar via


Efeitos de buffer

O exemplo a seguir mostra os efeitos de buffer.Você pode esperar que o programa para imprimir please wait, aguarde 5 segundos e prossiga.Não necessariamente funciona dessa maneira, no entanto, porque a saída é armazenado em buffer.

// 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;
}

Para fazer com que o programa funcione, logicamente, o cout objeto deve esvaziar a mesmo quando a mensagem é exibido.Para liberar um ostream de objeto, enviá-lo a flush manipulator:

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

Esta etapa libera o buffer, garantindo que a mensagem imprime antes do tempo de espera.Você também pode usar o endl manipulator, que libera o buffer e saídas e alimentação de linha um carro, ou você pode usar o cin objeto.Este objeto (com o cerr ou clog objetos) geralmente está ligado ao cout objeto.Assim, qualquer uso de cin (ou o cerr ou clog objetos) libera o cout objeto.

Consulte também

Referência

Fluxos de saída