c++ 如何清除剔除流[副本]

zc0qhyus  于 2023-02-14  发布在  其他
关注(0)|答案(1)|浏览(169)
    • 此问题在此处已有答案**:

(9个答案)
5年前关闭。

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以获得所需的输出?

pinkon5k

pinkon5k1#

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

第一行需要将字符串重置为空;第二行用来清除任何可能设置的错误标志,如果你知道没有设置错误标志或者你不关心重置它们,那么你就不需要调用clear()
通常情况下,使用新的std::ostringstream对象比重用现有的std::ostringstream对象更容易、更干净、更直接(更直接?),除非代码用于已知的性能热点。

相关问题