gpt4 book ai didi

c++ - 使用 cout 时输出缓冲区是否自动刷新?

转载 作者:太空宇宙 更新时间:2023-11-04 13:53:52 26 4
gpt4 key购买 nike

我想知道每次使用 cout 时输出缓冲区是否会自动刷新和清空。如果没有刷新,有什么办法可以“检查输出缓冲区的内容”?我指的是只使用 cout 而没有涉及 endl 的情况。

考虑以下代码:

cout << "Hello, how are you?";    //Without using endl

我使用 stringstream 来检查刷新如何影响缓冲区。我有以下代码,但为什么输出仍然显示“GoodDay”,即使我已经刷新了它?

string str;
stringstream ss;
ss << "GoodDay";
ss << flush;
ss >> str;
cout << str;

最佳答案

stringstream 不应在刷新时丢失其内容。实际上,flush 操纵器对 stringstream 没有任何意义,因为任何输入都会立即写入由 stringstream 包装的缓冲区。这就是为什么您仍然看到“GoodDay”的原因。

关于c++ - 使用 cout 时输出缓冲区是否自动刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22389616/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com