我无法弄清楚为什么以下代码输出不正确。它应该读一个名字并成绩为一系列学生的入口。由于某种原因,在实际条目之间存在幻像条目,如输出中没有名称前面的名称所示。:
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