Auswirkungen der Pufferung

Im folgenden Beispiel werden die Effekte an Puffern.Sie können das Programm erwarteten please waitwartet 5 Sekunden ausgegeben und anschließend fortfahren.Es nicht unbedingt auf diese Weise funktioniert, da die Ausgabe gepuffert wird.

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

Um die Arbeit Programm logisch auszuführen, muss das cout-Objekt leeren wenn die Meldung angezeigt wird.Um ein ostream-Objekt zu leeren, senden Sie es der flush Manipulator:

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

In diesem Schritt wird den Puffer und sicherstellt, dass die Nachricht vor dem Wartevorgang ausgibt.Sie können den endl Manipulator auch der den Puffer geleert und einen ausgibt, die zurückgegeben wird, oder Sie können das cin-Objekt verwenden.Dieses Objekt (mit den cerr oder clog-Objekte) wird normalerweise dem cout-Objekt gebunden.Daher wird jede Verwendung von cin (oder cerr oder clog-Objekte), die cout-Objekt.

Siehe auch

Referenz

Ausgabestreams