可能重复:
如何重用ostringstream?
我一直在使用std::ostringstream
将float
和int
值转换为字符串,但我找不到任何重用实例的方法。为了说明我的意思,以下是示例以及我尝试使用的清除流的方法。
#include <iostream>
#include <sstream>
using namespace std;
int main() {
ostringstream stream;
stream << "Test";
cout << stream.str() << endl;
stream.flush();
stream << "----";
cout << stream.str() << endl;
stream.clear();
stream << "****";
cout << stream.str() << endl;
return 0;
}
生成输出
Test
Test----
Test----****
这给我带来了问题,因为我不得不创建许多
ostringstream
的实例,这是浪费的。显然,clear()
和flush()
不能满足我的需求,那么有没有办法做到这一点?我查看了http://www.cplusplus.com/reference/iostream/ostringstream/上的文档,但似乎没有任何可以做到我需要的东西。有没有办法重置或清除流?
stream.str("");
总让我感觉像是在使用hack技巧。 - John Diblingstd::cout << 10
并完成它。如果我需要一个字符串,我想我会说std::to_string(10)
。 - Kerrek SB