gpt4 book ai didi

c - 我的循环不工作(使用 feof)

转载 作者:太空宇宙 更新时间:2023-11-04 02:39:01 26 4
gpt4 key购买 nike

FILE *test;
student st;
int i = 0;
test = fopen("example.bin", "rb");
while (feof(test))
{
fread(&st, sizeof(st),1,test);
Class[i] = st;

i++;
}
fclose(test);

所以我的问题是如何读取它,将数据放入我的结构中并停止循环?

最佳答案

参见 why is while(feof) always wrong .

相反,你应该循环直到你没有读到一个学生:

while (1 == fread(&st, sizeof st, 1, test))
{
Class[i++] = st;
}

此外,最好确保您不会溢出 Class 的缓冲区,因此也要检查 i,例如:

for (i = 0; i < MAX_CLASS && 1 == fread(&st, sizeof st, 1, test); ++i)
{
Class[i] = st;
}

关于c - 我的循环不工作(使用 feof),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33926590/

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