Sdílet prostřednictvím


Účinky ukládání do vyrovnávací paměti

Následující příklad ukazuje účinek ukládání do vyrovnávací paměti.By se dalo očekávat program vytiskl please wait, počkejte 5 sekund a potom pokračovat.Nebude fungovat nemusí být tímto způsobem, protože výstup do vyrovnávací paměti.

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

Chcete-li program práce logicky, cout objektu musíte vyprázdnit sám po se zobrazí zpráva.Vyprázdnění ostream objekt, odeslat ji flush manipulator:

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

Tento krok se vyprázdní vyrovnávací paměť, zajištění, že zpráva se vytiskne před čekání.Můžete použít také endl manipulator, která vyprázdní vyrovnávací paměť a výstupy return–linefeed přepravu, nebo můžete použít cin objektu.Tento objekt (s cerr nebo clog objekty) je obvykle vázáno cout objektu.Proto jakékoli použití cin (nebo cerr nebo clog objekty) vyprázdní cout objektu.

Viz také

Referenční dokumentace

Výstupní datové proudy