C++ C++;:从字符串流读取
我有一个格式为字符串的istringstream对象C++ C++;:从字符串流读取,c++,C++,我有一个格式为字符串的istringstream对象 STRING,INT,INT,INT 如。 姓名,20,30,40 我想把这些值读入特定类型的变量中,比如std:string和int。 我该怎么做呢?懒惰的方式: getline(stream, str, ','); char c; stream >> i1 >> c >> i2 >> c >> i3; 它是“懒惰的”,因为它不以任何合理的方式处理格式错误 更聪明的方法是将逗号拆
STRING,INT,INT,INT
如。
姓名,20,30,40
我想把这些值读入特定类型的变量中,比如std:string和int。
我该怎么做呢?懒惰的方式:
getline(stream, str, ',');
char c;
stream >> i1 >> c >> i2 >> c >> i3;
它是“懒惰的”,因为它不以任何合理的方式处理格式错误
更聪明的方法是将逗号拆分为字符串向量(然后根据需要将其转换为整数),或者使用成熟的解析器,如boost.spirit。您可以轻松地处理错误:
char c;如果(getline(stream,str,',')&&stream>>i1>>c&&c==','&&stream>>i2>>c&&c==','&&stream>>i3).