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;
Другие вопросы по тегам