stringstream字符串流

 

例题详解

題目:输入的第一行有一个数字 N 代表接下來有 N 行資料,每一行資料里有不固定個數的整數(最多 20 個,每行最大 200 個字元),請你寫一個程式將每行的总和印出來。

輸入:

3
1 2 3
20 17 23 54 77 60
111 222 333 444 555 666 777 888 999

輸出:

6
251
4995

代码:

 

 1 #include<iostream>
 2 #include<sstream>
 3 #include<algorithm>
 4 using namespace std;
 5 int main(){
 6     string s;
 7     int T,a;
 8     cin>>T;
 9     getchar();
10     while(T--){
11         getline(cin,s);
12         stringstream ss(s);
13         int sum=0;
14         while(1){
15             ss>>a;
16             if(ss.fail())break;
17             sum+=a;
18         }
19         cout<<sum<<endl;
20     }
21     return 0;
22 }

 

以下是对于stringstream和sprintf和sscanf的理解:

 1 /*#include<algorithm>
 2 #include<iostream>
 3 #include<sstream>
 4 using namespace std;
 5 int main(){
 6     string s="carea 89 男";
 7     stringstream ss(s);
 8     string a,b;
 9     int c;
10         ss>>a>>c>>b;
11         cout<<s<<endl;
12         cout<<a<<endl<<c<<endl<<b<<endl;
13     return 0;
14 }*/
15 /*
16 #include<algorithm>
17 #include<iostream>
18 #include<cstdio>
19 using namespace std;
20 int main(){
21     char s[50],ss[50];
22     int a=154000,b=848;
23     sprintf(s,"%d plus %d is %d",a,b,a+b);//
24     cout<<s<<endl;
25     sscanf(s,"%*s%s",ss);//
26     puts(ss);
27     return 0;
28 }*/

 

 

posted @ 2015-10-20 13:23  handsomecui  阅读(203)  评论(0编辑  收藏  举报