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以获得所需的输出?
答案 0 :(得分:181)
s.str("");
s.clear();
第一行需要将字符串重置为空;需要第二行来清除可能设置的任何错误标志。如果您知道没有设置错误标记或者您不关心重置它们,那么您无需致电clear()
。
除非代码在已知的性能热点中使用,否则通常使用新的std::ostringstream
对象而不是重用现有对象更容易,更清晰,更直接(直接?)?