Partilhar via


Efeitos do buffer

O exemplo a seguir mostra os efeitos de proteção. Você pode esperar que o programa espera, imprimir please wait5 segundos, e continua em. Não funcionará necessariamente essa forma, o entanto, como a saída são armazenadas 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 logicamente o trabalho do programa, o objeto de cout deve esvaziar-se quando a mensagem for exibida. Para liberar um objeto de ostream , envia o manipulador de flush :

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

Esta etapa libera o buffer, assegurando as cópias da mensagem antes de espera. Você também pode usar o manipulador de endl , que libera o buffer e as saídas uma retorno- avanço de linha de carro, ou você pode usar o objeto de cin . Esse objeto (com os objetos de cerr ou de clog ) é associado normalmente ao objeto de cout . Assim, qualquer uso de cin (ou objetos de cerr ou de clog ) libera o objeto de cout .

Consulte também

Referência

Fluxos de Saída