如何清除ostringstream

时间:2011-03-13 07:13:52

标签: c++ stream

    ostringstream s;

    s << "123";
    cout << s.str().c_str() << endl;

    // how to clear ostringstream here?
    s << "456";
    cout << s.str().c_str() << endl;

输出是:

123
123456

我需要:

123
456

如何重置ostringstream以获得所需的输出?

1 个答案:

答案 0 :(得分:181)

s.str("");
s.clear();

第一行需要将字符串重置为空;需要第二行来清除可能设置的任何错误标志。如果您知道没有设置错误标记或者您不关心重置它们,那么您无需致电clear()

除非代码在已知的性能热点中使用,否则通常使用新的std::ostringstream对象而不是重用现有对象更容易,更清晰,更直接(直接?)?