gpt4 book ai didi

c++ - 使用从文件读取的结构的函数不返回任何输出?

转载 作者:搜寻专家 更新时间:2023-10-31 01:44:18 24 4
gpt4 key购买 nike

我应该声明一个结构,其中包含未知数量学生的姓名和成绩。这是我的做法:

struct student {
char name[30];
int grade1, grade2, grade3;
};

然后,我有一个文本文件,其中包含不同行中每个学生的信息。我是这样读的。

student info[20];
int nr_students,i=0,k=0;
fstream inFile;
inFile.open("in.txt");
fstream outFile;
outFile.open("out.txt");

while(!EOF) {
inFile>>info[i].name;
inFile>>info[i].grade1;
inFile>>info[i].grade2;
inFile>>info[i].grade3;
i++;

}
nr_students=i;
avg_promovability(outFile,info, nr_students);

我认为这不能正常工作,因为 nr_students 显然仍为 0。另外,第一个功能:

void avg_promovability(fstream &outFile,student *info, int nr_students)
{
int i;
float sum=0,j=0,avg;
for (i=0;i<nr_students;i++)
if(info[i].grade1 >=5 && info[i].grade2>=5 && info[i].grade3>=5 ) {
sum=sum + info[i].grade1 + info[i].grade2 + info[i].grade3;
j++;
}
avg=sum/(3*j);
outFile<<avg;

}

它应该计算通过的学生的平均成绩(即所有成绩都>=5)。它并没有真正做到,out.txt 文件总是空的。关于我做错了什么有什么建议吗?

最佳答案

这不是检查文件末尾的方式。尝试

while (inFile>>info[i].name) {
inFile>>info[i].grade1;
inFile>>info[i].grade2;
inFile>>info[i].grade3;
i++;
}

关于c++ - 使用从文件读取的结构的函数不返回任何输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23728406/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com