我是C++的新手,從文本文件讀取數據行時遇到了一些麻煩。假設我在文本文件中有未知數的行,每行的格式都是相同的:int string double。唯一可以確定的是空間將分隔給定行上的每一條數據。我正在使用結構數組來存儲數據。下面的代碼很好,除了在每個循環之後跳過一行輸入。我試過插入各種ignore()語句,但仍然無法讀取每行,只讀其他行。如果我在最後重寫了一些getline語句,那麼在第一次循環之後,將開始爲變量存儲錯誤的數據。當讀取和存儲文件中的數據時,其他每行數據都會被跳過
文本文件可能是這樣的:
18 JIMMY 71.5
32 TOM 68.25
27 SARAH 61.4
//code
struct PersonInfo
{
int age;
string name;
double height;
};
//..... fstream inputFile; string input;
PersonInfo *people;
people = new PersonInfo[50];
int ix = 0;
getline(inputFile, input, ' ');
while(inputFile)
{
people[ix].age = atoi(input.c_str());
getline(inputFile, input, ' ');
people[ix].name = input;
getline(inputFile, input, ' ');
people[ix].height = atof(input.c_str());
ix++;
getline(inputFile, input, '\n');
getline(inputFile, input, ' ');
}
我敢肯定有更先進的方法可以做到這一點,但就像我說的,我很新的C++所以如果有隻是稍作修改到上面的代碼,那會很棒。謝謝!
我讀到了全線然後解析行成翹楚領域。 – John3136 2013-04-11 02:12:56