标签: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;
还有个问题:这里默认的分词都是空格,那么如果是其他的比如逗号怎么做
标签:spl cpp cin cout etl 初始 换行 clu sso
原文地址:https://www.cnblogs.com/zhang-qc/p/9048977.html