11
Как вы можете получить небуферизованный вывод cout, чтобы он мгновенно записывал на консоль без необходимости скрывать (аналогично cerr)?Небуферизованный вывод с cout
Я думал, что это можно сделать через rdbuf() -> pubsetbuf, но это, похоже, не работает. Следующий снимок кода ниже должен немедленно выводиться на консоль, а затем ждать несколько секунд. Но вместо этого он просто ждет и выводит только при выходе программы и буфера.
#include <iostream>
int main()
{
std::cout.rdbuf()->pubsetbuf(0, 0);
std::cout << "A";
sleep(5);
}
Это решение действительно сработало для меня, спасибо! Замечание для других: буферизация появляется при использовании cout или printf и происходит даже в том случае, если в конце строки используется новая строка. – Moot