自己写的有问题,如下。测试一组数据正确,多加一组就运行不正确。如果可以,尽量在我的基础上改下。也可以粘贴一下你们自己写的。文件学的太浅,不太懂。。。代码如下:void fun(student *stu,char *f_name,int id){int i = 0;int j = 0;FILE *fp;fp = fopen(f_name,"w+");for(i = 0;iid,stu->name,&stu->grade1,&stu->grade2,&stu->grade3);if((stu->id) == id){(stu->grade1) = (stu->grade1)+3.0;(stu->grade2) = (stu->grade2)+3.0;(stu->grade3) = (stu->grade3)+3.0;//下列fprintf函数,感觉这里这么写不对,该怎么样写??????fprintf(fp,"%d %s %f %f %f\n",stu->id,stu->name,stu->grade1,stu->grade2,stu->grade3);}}fclose(fp);}
上边的格式有问题。。。看这个吧。。。
void fun(student *stu,char *f_name,int id)
{
int i = 0;int j = 0;
FILE *fp;
fp = fopen(f_name,"w+");
for(i = 0;i
{
fscanf(fp,"%d %s %f %f %f",&stu->id,stu->name,&stu->grade1,&stu->grade2,&stu->grade3);
if((stu->id) == id)
{
(stu->grade1) = (stu->grade1)+3.0;
(stu->grade2) = (stu->grade2)+3.0;
(stu->grade3) = (stu->grade3)+3.0;
//下列fprintf函数,感觉这里这么写不对,该怎么样写??????
fprintf(fp,"%d %s %f %f %f\n",stu->id,stu->name,stu->grade1,stu->grade2,stu->grade3);
}
}
fclose(fp);
}