1
我想知道每次使用cout
时输出缓冲区是否自动刷新和清空。 如果没有刷新,有什么办法可以“检查输出缓冲区的内容”吗? 我指的是您只使用cout
而不涉及endl
的情况。使用cout时输出缓冲区是否自动刷新?
考虑下面的代码:
cout << "Hello, how are you?"; //Without using endl
我用字符串流检查如何冲洗影响缓冲。我有以下代码,但为什么输出仍显示“GoodDay”,即使我已经刷新了它?
string str;
stringstream ss;
ss << "GoodDay";
ss << flush;
ss >> str;
cout << str;
如果您使用'std :: endl'或写入更多的缓冲输出实际上可以容纳,它是刷新是的。至于你关于检查内容的问题,可能会看看['std :: ios_base :: register_callback'](http://en.cppreference.com/w/cpp/io/ios_base/register_callback)是有用的。 [我的答案在这里](http://stackoverflow.com/questions/22263636/fstream-c-automatic-line-addition/22263699#22263699)也可能会给你一些见解。 –
因此,如果我不使用std :: endl,并且不要写超过缓冲输出可以容纳的数据,那么当我使用cout时,输出缓冲区是否仍然会被刷新?感谢您的回复。 – user3347939
_'当我使用cout时,输出缓冲区仍然会被刷新吗?'_Nope ... –