(StringStream)真是个好东西(QwQ)。
这玩意儿主要用来对付毒瘤输入。
举个栗子:
3 2 Aland 10 Boland 20 Aland Coland 15 #
对,没错,你没看错,就是他,(Woc)这是什么毒瘤,(string)夹(int)?
不过用可爱的(StringStream)就可以解决这样的问题。
#include<bits/stdc++.h>
using namespace std;
int main(){
stringstream sp;
string s;
getline(cin,s);
int T;
double F;
bool c;
string a;
sp<<s;
sp>>T>>F>>c>>a;
cout<<T<<' '<<F<<' '<<c<<' '<<a;
}
实际上,(StringStream)可以说和(cin)原理差不多,但他可以将任意类型与(string)相互转换。
像上面的例子:将完整的一行读入一个临时(string)之后可以用(StringStream)将他们分开
(StringStream)会自动处理,将相应的类型给对应的变量。