为多个转换清除和重用stringstream
Clear and reuse a stringstream for multiple conversions
我正在处理一个Hacker Rank分配,需要一种将字符串转换为int的方法,于是决定使用stringstream(这是我第一次使用它)。是否有一种方法以某种方式使用相同的声明stringstram(您是这样称呼它的吗?),而不是为每次转换创建新的?我尝试使用。clear()函数,但它仍然不起作用。
如何做到的:
stringstream s0(hour); // this is my way of converting string to int because stoi doesn't seem to work
s0 >> i_hour;
cout << i_hour << endl;
stringstream s1(minute);
s1 >> i_minute;
stringstream s2(second);
s2 >> i_second;`
和我想怎么做:
stringstream ss(hour);
ss >> i_hour;
ss.clear();
ss << minute;
ss >> i_minute;
是否有类似的方法?不断地声明新的,看起来真的很乱。
可以调用str(s)
方法将std::istringstream
初始化为一个新的字符串。你应该使用std::istringstream
,如果你所做的一切是从一个字符串转换。
如果先前的转换导致错误,您还需要clear()
来清除其错误状态。
所以你的例子是:
istringstream ss(hour);
ss >> i_hour;
ss.clear();
ss.str(minute);
ss >> i_minute;
使用
ss.str("");
清除流。ss.clear()
只重置标志
相关文章:
- 清除前检查矢量
- ifstream文件在从行中读取时被清除
- 当我们进行一些操作时,应该使用什么'std::string'或'std::stringstream'?
- C ++中的StringStream有助于使用向量从字符串中提取逗号分隔的整数,而不是空格分隔的整数,为什么?
- WINAPI 注册应用程序重新启动时不清除打开的套接字
- 如何清除/清空已打开的文件C++
- 使用 "stringstream " 将字符串转换为整数
- std::stringstream 返回字符 *
- 如何在 c++ 中清除矢量容量?
- 可以清除递归函数中的变量吗?
- 在清除 istream 之前,我不应该需要取消获取它吗?
- 结构成员在访问时被清除
- 清除输入缓冲区后未提取字符串流
- SDL_ttf清除我之前和将来的所有渲染
- std::stringstream::flush() 应该做什么吗?
- 如何使用内存集清除字符数组
- 为什么我必须在这里清除std::stringstream
- 为多个转换清除和重用stringstream
- 使用一行代码m.s swap(std::stringstream());清除stringstream
- 在while循环中清除stringstream