У меня действительно простая программа, которая печатает строки с использованием cout и снов после каждой строки. Все хорошо и полезно для примерно 7 итераций, поскольку буфер явно не сбрасывается в любой момент. После этого я предполагаю, что только часть буфера очищается на каждой итерации.Я не понимаю буферизованный вывод и cout
У меня есть несколько вопросов по поводу такого поведения:
- Если буфер достаточно, чтобы соответствовать ~ 7 строк вывода якобы большой, почему буфер продувают одну строку за один раз?
- Если этот буфер действительно покраснел таким образом, в чем преимущество этого? Почему не весь буфер сразу вспыхнул?
Совместимо ли совпадение с тем же количеством символов на выходе, что и моя длина строки, или же внутренний буфер cout сбрасывается на основе разделителей конца строки, таких как '\ n'?
int main(){ for(int i = 0; i < 100; ++i){ std::cout << "This is line " << i << '\n'; Sleep(1000); } return 0; }
Он печатает каждую секунду, как и вы ожидали, для меня, с или без '\ n'. –