stringstream是 C++ 提供的另一个字串型的串流(stream)物件,和之前学过的iostream、fstream有类似的操作方式。要使用stringstream, 必须先加入这一行:
#include <sstream>
stringstream主要是用在將一个字符串分割,可以先用.clear( )以及.str( )將指定字串设定成一开始的內容,再用>>把个別的资料输出。
举个例子:
題目:输入的第一行有一个数字 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
代码:
#include <iostream> #include <string> #include <sstream> using namespace std; int main() { string s; stringstream ss; int n; cin >> n; getline(cin, s); //读取换行 for (int i = 0; i < n; i++) { getline(cin, s); ss.clear(); ss.str(s); int sum = 0; while (1) { int a; ss >> a; if(ss.fail()) break; sum += a; } cout << sum << endl; } return 0; }