C语言 关于 fprintf 和 fscanf 的问题

2024年11月27日 12:29
有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), …);