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.