码迷,mamicode.com
首页 > 编程语言 > 详细

C++中stringstream样例

时间:2018-05-17 12:01:53      阅读:14      评论:0      收藏:0      [点我收藏+]

标签:spl   cpp   cin   cout   etl   初始   换行   clu   sso   

包含头文件 #include <sstream>  

初始化可以使用 clear()、 str( ) 赋值;

可以使用<<输入和>>输出

string s;
stringstream ss;
int a, b, c;
getline(cin, s);
ss.clear();
ss.str(s);
ss >> a >> b >> c; //这里默认空格直接会分词,而且即使abc的类型不同还是可以的,相当于灵活类型转换
string s;
stringstream ss;
int n, i, sum, a;
cin >> n;
getline(cin, s); // 读取换行符
for (i=0; i<n; i++)
{
    getline(cin, s);
    ss.clear();
    ss.str(s);
    sum=0;
    while (1)
    {
        ss >> a;
        if ( ss.fail() ) break; //fail()判断是否到底
        sum+=a;
    }
    cout << sum << endl;
}

  

    //stringstream用于split很方便  
    string a, b, c, d;  
    string lines="adfa;asdfasd;fasdf;ccc";   
    stringstream line(lines);  //可以直接初始化
    getline(line, a, ‘f‘);  
    getline(line, b, ‘;‘);  
    getline(line, c, ‘;‘);  
    getline(line, d);     //与不同的getline搭配
    cout<<"a = "<<a<<endl;  
    cout<<"b = "<<b<<endl;  
    cout<<"c = "<<c<<endl;  
    cout<<"d = "<<d<<endl;  

  还有个问题:这里默认的分词都是空格,那么如果是其他的比如逗号怎么做

 

C++中stringstream样例

标签:spl   cpp   cin   cout   etl   初始   换行   clu   sso   

原文地址:https://www.cnblogs.com/zhang-qc/p/9048977.html

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!