【发布时间】:2012-03-17 15:50:59
【问题描述】:
我在将文件从输入读取到数组结构时遇到很多麻烦。这是代码,如果有人可以告诉我我做错了什么,我可以弄清楚。该循环应该读取 2 个字符串和 1 个 int,并跳过可能的空行。但是当我运行它时,它会读取第一组,之后什么也没有读取。
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;
}
【问题讨论】:
-
for 循环中 do 循环的突然变化是什么?见stackoverflow.com/questions/9475404/…
标签: c++ multidimensional-array struct