gpt4 book ai didi

c - 使用 fread 时数据被打印两次

转载 作者:太空宇宙 更新时间:2023-11-04 03:43:35 24 4
gpt4 key购买 nike

<分区>

我正在使用二进制文件 IO 函数 fread 从文件中读取 当我运行程序时,最终条目被打印了两次

FILE *fp;
struct entry temp;
if (fp = fopen("recs.bin","rb"))
{
while (!feof(fp))
{
fread(&temp,sizeof (struct entry),1,fp);
printf("%s %s %s \n", temp.name ,temp.design ,temp.contact);
}
fclose(fp);
else
{
printf("\error opening file\n");
}

当我运行代码时,输​​出如下

    Pfor.ABC    Professor    9867552
Sir Blah lecturar 9237434
Miss etc Asst. Porfessor 03847363
Miss etc Asst. Porfessor 03847363

我总是得到最后一个条目两次我尝试通过如下方式打印 beofre 阅读

while (!feof(fp))
{
printf("%s %s %s \n", temp.name ,temp.design ,temp.contact);
fread(&temp,sizeof (struct entry),1,fp);
}

现在输出是

    #gd^&!d     $!du(!      #$@%@22        //Some garbage values
Pfor.ABC Professor 9867552
Sir Blah lecturar 9237434
Miss etc Asst. Porfessor 03847363

现在解决了打印两次但是正在打印垃圾值我认为这是 feof(fp) 中的问题,但无法弄清楚

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