std :: ostringstream和flush成员函数

时间:2012-10-21 20:28:22

标签: c++

为什么有这么多人在这种情况下对std :: ostringstream对象使用flush()成员函数:

#include <iostream>
#include <sstream>

int main()
{
   float f = 12.345f / 100;
   std::ostringstream ios;
   ios << f;
   ios.flush();
   std::cout << f << " : " << ios.str() << std::endl;
}

没有此调用的输出将是相同的。

那么,为什么?什么时候应该使用flush()成员函数?

1 个答案:

答案 0 :(得分:2)

在那种情况下,没有充分的理由使用同花顺。我很想知道这么多人在哪里。就我个人而言,我不记得曾经看过这样的同花顺。

大多数时候我会把这样的代码归结为迷信。有人有一个他们从未理解的错误,但他们尝试了同花顺,神秘地将虫子消失了。使用flush并不是bug消失的真正原因,但它被卡住了。

如果要立即输出缓冲数据,则应在缓冲流上使用flush。

相关问题