stringstream使用总结

使用方法

使用stringstream需要头文件#include < sstream >。

stringstream一般用于输入一行字符串,以空格为分隔符把该行分隔开来。

经常用于格式转换,相当的好用。

还是不太熟练,所以来总结一下。

具体使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
string s;
stringstream ss;
cin>>s;
ss<<s;
int a;
ss>>a;//字符串转int或者long long
double b;
ss>>b;//字符串转float或者double
//或者
cin>>a>>b;
ss<<a;
ss>>s;//int转字符串
ss<<b;
ss>>s;//double转字符串
1
2
3
4
5
6
7
8
string s;
stringstream ss;
getline(cin,s);//读取一行
ss<<s;
while(ss){
ss>>s;//分割字符串
cout<<s<<endl;
}
1
2
3
4
5
6
7
8
int a;
double b;
string s;
s=to_string(a);//int转字符串
s=to_string(b);double转字符串
cin>>s;
a=stoi(s);//字符串转int
b=stod(s);//字符串转double

如果多次使用,并且使用之后stringstream不为空,记住需要清空stringstream。

1
2
3
4
stringstream ss;
// 如下两部可彻底恢复ss,单独的clear是没办法清空的
ss.clear(); // 恢复状态
ss.str(""); // 恢复值

如果希望按照其他的字符分割,需要将读取的方式进行修改。

1
2
3
4
5
6
7
string data = "1,2,3,4,5,6";
stringstream ss(data);//或者
ss<<data;
string item;
cout << data << endl;
while (getline(ss, item, ','))
cout << item << ' ';
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • © 2015-2021 sakurakarma
  • Powered by Hexo Theme Ayer
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信