如何清理黄河

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

I need:

123
456

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

96776 次浏览
s.str("");
s.clear();

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

通常它更容易,更干净,更直接(更直接?)只是使用一个新的 std::ostringstream对象,而不是重用现有的对象,除非代码使用在一个已知的性能热点。