Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W poniższym przykładzie pokazano efekty buforowania. Możesz oczekiwać, że program będzie drukować please wait
, poczekać 5 sekund, a następnie kontynuować. Niekoniecznie będzie to jednak działać w ten sposób, ponieważ dane wyjściowe są buforowane.
// 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;
}
Aby program działał logicznie, cout
obiekt musi być pusty po wyświetleniu komunikatu. Aby opróżnić ostream
obiekt, wyślij go flush
do manipulatora:
cout <<"Please wait..." <<flush;
Ten krok opróżnia bufor, zapewniając, że komunikat jest wyświetlany przed oczekiwaniem. Można również użyć endl
manipulatora, który opróżnia bufor i wyprowadza karetki zwrotnej linii, lub można użyć cin
obiektu . Ten obiekt (z obiektami lubclog
) jest zwykle powiązany z cerr
obiektemcout
. W związku z tym każde użycie cin
(lub obiektów) clog
cerr
opróżnia cout
obiekt.