我在从输入到数组结构中读取文件时遇到了很多麻烦。这里是代码,如果有人可以告诉我什么即时做错了我可以弄明白。循环应该是读取2个字符串和1个int,并跳过可能的空行。但是当我运行它时,它会读取第一组并在此后不读取任何内容。C++在数组中读取故障
struct Instruments
{
string model;
string maker;
int year;
};
int main()
{
int size;
Instruments data[20];
int i =0;
ifstream fin;
fin.open("input.txt");
for (i=0; i<20; i++)
{
do{
getline(fin, data[size].model);
getline (fin, data[size].maker);
fin >> data[size].year;
size++;
}
while (data[size].model.length() > 0);
}
fin.close();
for(int i=0;i<size; i++)
{
cout << data[i].model << "model"<<endl;
cout << data[i].maker << "maker" << endl;
cout << data[i].year<< " year" << endl;
}
return 0;
}
什么是循环内的do循环的突然infactuation?请参阅http://stackoverflow.com/questions/9475404/c-why-is-this-loop-flawed-to-read-in-data-to-a-struct-array/9475435#9475435 – paxdiablo 2012-02-28 06:43:10