Поделиться через


Влияние буферизации

Следующий пример демонстрирует действие команды буферизации.Можно ожидать программу для печати please wait, подождите 5 секунд, а затем продолжить.Он не обязательно будет работать в этом случае, однако поскольку выходные данные помещаются в буфер.

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

Работы программы логически cout объект должен очистки, когда сообщение.Сбросить ostream объект, он отправляет flush манипулятор.

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

Этот шаг очищает буфер, предоставляя, что сообщение выводится перед ожиданием.Можно также использовать endl манипулятор, который очищает буфер и выводит возвращени-перевод строки или можно использовать экипажа cin объект.Этот объект (с ключом cerr OR clog обычно связаны с объектами) cout объект.Таким образом, любая использование cin (или cerr OR clog объекты) топят cout объект.

См. также

Ссылки

Потоки вывода