以stringstream类为中间介质,来实现字符串于数字的转化
引例:
输入n行,每行由不超过规定个数的数字s在一定的范围内,以空格隔开,我们想把起存在一个数组里
处理这类输入引入stringstream来解决(stringstream包含在“sstream”头文件中)
先以一个数字转化为字符串,或一个字符串转化为数字为例
一个数字转化为字符串:
double a = 133.454;
string str;
stringstream s;
s << a;
s >> str;
一个字符串转化为数字
string str = "13243.4545";
double a;
stringstream s;
s << str;
s >> a;
上述两个例子都是以stringstream为中介现数据类型的转化
现来解决引例,设定行数为lines
string str;
int cnt = 0;
for(int i = 0;i < lines;i++)
{
getline(cin,str);
stringstream s;
s << str; //将字符串输入stringstream的流中
while(s >> a[cnt]) cnt ++;//将s输入到整型数字中,类比cin,从cin的流中输入到整型数字
}