stringstream用法

 1、字符串分割

 1 int main() {
 2     string s = "asdhj,sfkkjdsi,sdni";
 3     istringstream ss(s);
 4     string temp;
 5     while (getline(ss, temp, ','))
 6         cout << temp << endl;
 7     string t = "a5151,sf79dsi,sd120i";
 8     ss.clear();
 9     ss.str(t);
10     while (getline(ss, temp, ','))
11         cout << temp << endl;
12     system("pause");
13     return 0;
14 }

2、类型转换

 1 int main() {
 2     string s = "123";
 3     istringstream iss(s);
 4     int i;
 5     iss >> i;
 6     cout << i << endl;
 7     s = "12.345";
 8     iss.clear();
 9     iss.str(s);
10     float f;
11     iss >> f;
12     cout << f << endl;
13     system("pause");
14     return 0;
15 }

stringstream类型转换的时候,一直读到第一个不符合类型的字符为止。

 1 int main() {
 2     string s = "123.456";
 3     istringstream iss(s);
 4     int i;
 5     iss >> i;
 6     cout << i << endl;
 7     float f;
 8     iss >> f;
 9     cout << f << endl;
10     system("pause");
11     return 0;
12 }

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

demo:利用stringstream实现字符串数字计算

 1 #include<iostream>
 2 #include<sstream>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     string s1 = "-123.45";
 8     double f1;
 9     string s2 = "123.456";
10     double f2;
11     istringstream is1(s1);
12     is1 >> f1;
13     cout << f1 << endl;
14     istringstream is2(s2);
15     is2 >> f2;
16     cout << f2 << endl;
17     double f = f1 + f2;
18     stringstream os;
19     os << f;
20     string s;
21     os >> s;
22     cout << s << endl;
23         return 0;
24 }

 

posted @ 2018-05-09 18:09  Zzz...y  阅读(819)  评论(0编辑  收藏  举报