如何在C++中正确清理stringstream并准备重复使用?
大家好!我是C++新手,在使用stringstream时遇到了问题。我需要在循环中用stringstream生成字符串,但第一次循环后它没有清空,数据不断累积。请教如何正确重置stringstream的状态?
这是我的代码:
```cpp
#include
#include
#include
int main() {
std::stringstream ss;
for (int i = 0; i < 3; ++i) {
ss << "Number: " << i;
std::string result = ss.str();
std::cout << "Iteration " << i << ": " << result << std::endl;
// 这里我尝试清空ss,但不知道正确方法
// ss.str(""); // 试过这样——不行
}
return 0;
}
```
这段代码的输出:
```
Iteration 0: Number: 0
Iteration 1: Number: 0Number: 1
Iteration 2: Number: 0Number: 1Number: 2
```
我希望每次迭代只输出当前值,即:
```
Iteration 0: Number: 0
Iteration 1: Number: 1
Iteration 2: Number: 2
```