cout не печатает даже с задержкой
Я жду cout
распечатать "привет" и через две секунды "мир".
int t = time( NULL );
std::cout << "hello";
while( time(NULL) < (t + 2) );
std::cout << " world";
Но вместо этого, cout
печатает, отмечая на экране до двух секунд спустя, затем программа печатает "привет мир". Даже если задержка увеличивается как (t + 9)
, это тот же результат. Я не знаком с этим cout
поведение.
Но если я добавлю std::endl
во-первых cout
вот так:
std::cout << "hello" << std::endl;
...
Я получаю ожидаемый результат ( "привет" и через две секунды "мир").
1 ответ
Решение
std::cout
обычно буферизуется, что означает, что он может не выводиться немедленно, если вы не заставите его. Пытаться std::flush
после вашего первого выхода:
std::cout << "hello " << std::flush;