我无法弄清楚为什么以下代码无法正确输出。它应该将姓名和成绩读入一组学生的条目中。出于某种原因,真实条目之间存在幻像条目,如输出中在数字前没有名称的行所示:
fin.open("data.txt");
for ( int i=0 ; getline(fin, info[i].name) && (i<SIZE) ; i++){
fin.clear();
fin >> info[i].quiz.gradeone;
fin >> info[i].quiz.gradetwo;
fin >> info[i].quiz.gradethree;
fin.clear();
numb++;
cout << info[i].name << info[i].quiz.gradeone << info[i].quiz.gradetwo
<< info[i].quiz.gradethree << endl;
}
fin.close();
这是数据:
Jeramy Puleo
45 99 101
Liz Kershaw
55 70 35
Sherrill Dykes
88 94 100
Emmitt Auclair
89 94 88
Nana Bassler
22 55 88
和(错误的)输出:
Jeramy Puleo 45 99 101
0 32767 0
Liz Kershaw 55 70 35
0 0 0
Sherrill Dykes 88 94 100
0 0 0
Emmitt Auclair 89 94 88
0 0 0
Nana Bassler 22 55 88