stringstream的使用

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;
}

 

上一篇:[剑指offer]-字符流中第一个只出现一次的字符


下一篇:string和stringstream用法