C语言 关于 fprintf 和 fscanf 的问题

2024-11-27 12:29:53
推荐回答(5个)
回答1:

这个题,最好把

fscanf(p1,"%s %d ",p3->name,p3->num);
fscanf(p1,"%s %d ",fp->name,fp->num);
fscanf(p1,"%s %d ",p4->name,p4->num);

三行改成

fscanf(p1,"%s%d",p3->name,&p3->num);
fscanf(p1,"%s%d",fp->name,&fp->num);
fscanf(p1,"%s%d",p4->name,&p4->num);

即在p3->num、fp->num、p4->num前加&,并把格式字符串中的空格删除(特别是最后一个),否则在你这里可能不会出错,而在别的文件结构中就可能出错。供参考。

回答2:

你数字部分是不是写入失败了?

如果写入没有失败的话,你看看这样写读取语句:
fprintf(p1, "%s%d", name, num);

回答3:

读取的时候,num好像应该加上地址符&,您试试

回答4:

int num=0你在定义的时候给一个初值

回答5:

fscan(…, &(p->num), …);