2015-09-11 130 views
0

我試圖從一個.txt文件讀取數據到一個向量中,但它在存儲第一行後停止。向量只能從.txt文件讀取一行C++

這是我從文件中讀取的數據。

0 100 08 00 00 
0,182,08 00 15 
1,100,08 50 46 
1,132,08 51 18 

這是代碼

input.open ("RaceData.txt"); 
if (input.fail()) 
{ 
    cout <<"Cannot Open File.\n"; 
    exit(1); 
} 

int lap(0), racer(0), time(0); 
vector <int> data; 

while (input >> lap >> racer >> time) 
{ 
    data.push_back(lap); 
    data.push_back(racer); 
    data.push_back(time); 

} 

//display 
for (int i=0; i < data.size(); i++) 
    cout << data [i] << " "; 

我想可能不會繼續,因爲逗號的閱讀如果是這樣,我怎麼沒看逗號?

在此先感謝。

+2

您_want_閱讀或至少跳過逗號。你並沒有提取它們是問題所在。我認爲你應該將整行讀入一個字符串,然後將其分開解析。 –

+1

您的文件格式似乎不一致。爲什麼第一行沒有任何逗號,而下面的所有行呢?如果您希望能夠解析您讀取的文件,則需要它具有一致的格式。 –

+0

@bku_drytt我正在使用的書中的書中的示例含糊不清。我使用了給出的數據,但我認爲它沒有任何逗號,因爲在我擺脫所有逗號後,數據存儲在向量中就好了。 – Bea

回答

0

忽略逗號的最好方法是不要忽略空格。這裏有一個例子:根據您所期望的文件格式是

... 
char c; 
input >> std::noskipws; 
while (input >> lap >> c >> racer >> c >> time >> c) 
{ 
... 

,您可能需要更改上述接受multple空格。我希望這有幫助。