Effets de la mise en mémoire tampon
l'exemple suivant montre les effets de la mise en mémoire tampon.Vous pouvez supposer que le programme imprime please wait, attendez au moins 5 secondes, puis continuez.Cela ne fonctionnera pas nécessairement de cette façon, toutefois, comme la sortie est mise en mémoire tampon.
// 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;
}
Pour effectuer le travail de programme logiquement, l'objet d' cout doit effectuer un vidage lorsque le message est d'apparaître.Pour purger un objet d' ostream , puis envoyez -le le manipulateur d' flush :
cout << "Please wait..." << flush;
Cette étape vide la mémoire tampon, en vérifiant les copies de message avant l'attente.Vous pouvez également utiliser le manipulateur d' endl , qui vide la mémoire tampon et exporte un saut de ligne-retour de panier, ou vous pouvez utiliser l'objet d' cin .Cet objet (avec les objets d' cerr ou d' clog ) est généralement attaché à l'objet d' cout .Par conséquent, toute utilisation d' cin (ou des objets d' cerr ou d' clog ) vide l'objet d' cout .