Jak można uzyskać niebuforowany sygnał wyjściowy od cout, tak aby natychmiast zapisywał się na konsoli bez potrzeby przepłukiwania (podobnie do cerr)?Wyjście niebuforowane z coutą
Myślałem, że można to zrobić poprzez rdbuf() -> pubsetbuf, ale to nie działa. Poniższy fragment kodu poniżej powinien natychmiast wysłać do konsoli, a następnie poczekać kilka sekund. Zamiast tego, po prostu czeka, a kończy się tylko wtedy, gdy program wychodzi i bufor jest przepłukiwany.
#include <iostream>
int main()
{
std::cout.rdbuf()->pubsetbuf(0, 0);
std::cout << "A";
sleep(5);
}
To rozwiązanie rzeczywiście zadziałało dla mnie, dzięki! Uwaga dla innych: buforowanie wydaje się mieć miejsce podczas używania cout lub printf i dzieje się nawet, gdy na końcu linii jest używany znak nowej linii. – Moot