std::cout
- буферный поток.Это означает, что все, что вы записываете в этот поток, сначала попадает во внутренний буфер.Этот буфер очищается («очищается») только тогда, когда среда выполнения / система решает это сделать.Это сделано в основном из соображений производительности.Это позволяет среде выполнения / системе не выполнять тонны крошечных операций ввода-вывода все время, что может повлечь за собой некоторые накладные расходы, но подождать, пока накопится достаточное количество выходных данных, чтобы дорогие операции ввода-вывода могли быть выполнены большими партиями.
Вы можете вызвать метод flush()
для явного принудительного сброса потока или «вывода» std::flush
в поток:
std::cout << "bla" << std::flush
Если вы хотите сбросить после каждой строки, используйте std::endl
, который выводит символ новой строки, а также мигает.