我試圖分開的數字,如列表:34,45,12.3,100,34.6,50以逗號分隔的花車在C++
我能做到這一點只有當有這樣的沒有小數:
#include <vector>
#include <string>
#include <sstream>
#include <iostream>
int main()
{
std::string str = "34,45,12.3,100,34.6,50";
std::vector<int> vect;
std::stringstream ss(str);
int i;
while (ss >> i)
{
vect.push_back(i);
if (ss.peek() == ',')
ss.ignore();
}
for (i=0; i< vect.size(); i++)
std::cout << vect.at(i)<<std::endl;
}
這裏的問題是小數。上面的代碼將產生:
34 45 12 3 100 34 6 50
,同時它應該產生:
34 45 12.3 100 34.6 50
基本上,當它看到一個點'.'
它的作用就像是一個逗號上面的代碼。
任何想法?
你有一個'int'的向量,如整數,因此它不能保存浮點數;它們會被截斷爲整數部分。改變你的向量,使它的元素是浮點數。 –
'我'應該是'浮動'。 – Chnossos
這是http://stackoverflow.com/questions/1120140/how-can-i-read-and-parse-csv-files-in-c的重複(但由於某種原因,我不認爲它標記爲這樣,並關閉它,在這裏是正確的)。 –