0

我无法弄清楚为什么以下代码无法正确输出。它应该将姓名和成绩读入一组学生的条目中。出于某种原因,真实条目之间存在幻像条目,如输出中在数字前没有名称的行所示:

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
4

0 回答 0