1
我有一個格式爲字符串的istringstream對象 STRING,INT,INT,INT
例如。 「name,20,30,40」 我想將值讀入特定類型的變量,例如std:string和int。 我該怎麼做?C++:從字符串流中讀取
我有一個格式爲字符串的istringstream對象 STRING,INT,INT,INT
例如。 「name,20,30,40」 我想將值讀入特定類型的變量,例如std:string和int。 我該怎麼做?C++:從字符串流中讀取
偷懶的方法:
getline(stream, str, ',');
char c;
stream >> i1 >> c >> i2 >> c >> i3;
,因爲它不以任何合理的方式處理格式錯誤,這是「懶」。
更聰明的方式會被逗號分割成一個字符串向量(然後可以根據需要轉換爲整數),或者使用一個完整的解析器,比如boost.spirit。
你可以很容易地處理這個句柄:'char c; if(getline(stream,str,',')&& stream >> i1 >> c && c ==','&& stream >> i2 >> c && c ==','&& stream >> i3).. 。' – 2011-05-10 04:22:16
@Tony事實上,這解決了錯誤處理。 – Cubbi 2011-05-10 10:00:31