2015-09-11 87 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空格。我希望这有帮助。