在C++中可以使用stringstream来很方便的进行类型转换,字符串串接,不过注意重复使用同一个stringstream对象时要先继续清空,而清空很容易想到是clear方法,而在stringstream中这个方法实际上是清空stringstream的状态(比如出错等),真正清空内容需要使用.str(“”)方法。
用.str(“”)方法可以清楚缓存,但是,需要重复使用同一个stringstream对象时,得先用.str(“”)方法清楚缓存,再用.clear()方法重设状态,,否则对stringstream对象的操作是无效的。
#include <iostream>#include <sstream>#include <string>using namespace std;int main(){stringstream stream;stream<<"123";int n;stream>>n;cout<<n<<endl;//stream.str("");stream.clear();stream<<"de";string s;stream>>s;cout<<s;return 0;}输出结果:
而不用.str(“”)方法,只用.clear()方法,可以得到同上的结果,但是这是很危险的,极有可能耗尽全部内存。
#include <iostream>#include <sstream>#include <string>using namespace std;int main(){stringstream stream;stream<<"123";int n;stream>>n;cout<<n<<endl;stream.str("");//stream.clear();stream<<"de";string s;stream>>s;cout<<s;return 0;}
#include <iostream>#include <sstream>#include <string>using namespace std;int main(){stringstream stream;stream<<"123";int n;stream>>n;cout<<n<<endl;//stream.str("");//stream.clear();stream<<"de";string s;stream>>s;cout<<s;return 0;}
偶尔为街头独特的风景驻足,