Подтвердить что ты не робот

Небуферизованный выход cout

Как вы можете получить небуферизованный вывод из cout, чтобы он мгновенно записывал на консоль без необходимости очистки (аналогично cerr)?

Я думал, что это можно сделать через rdbuf() → pubsetbuf, но это, похоже, не работает. Следующий снимок кода ниже должен немедленно выводиться на консоль, а затем ждать несколько секунд. Но вместо этого он просто ждет и выводит только при выходе программы и буфера.

#include <iostream>

int main()
{
        std::cout.rdbuf()->pubsetbuf(0, 0);
        std::cout << "A";
        sleep(5);
}
4b9b3361

Ответ 1

std::cout.setf(std::ios::unitbuf);

Должен сделать трюк.