我想知道每次使用cout
时输出缓冲区是否会自动刷新和清空。
如果没有刷新,我有什么方法可以检查内容"输出缓冲区?
我指的是您只使用cout
且不涉及endl
的情况。
请考虑以下代码:
cout << "Hello, how are you?"; //Without using endl
我使用stringstream来检查flush如何影响缓冲区。我有以下代码,但为什么输出仍然显示&#34; GoodDay&#34;即使我已经冲了它?
string str;
stringstream ss;
ss << "GoodDay";
ss << flush;
ss >> str;
cout << str;
答案 0 :(得分:0)
stringstream不应该在flush上放松它的内容。实际上,flush操纵器无论如何都没有任何意义,因为任何输入都会立即写入stringstream包装的缓冲区。这就是你仍然看到“GoodDay”的原因。