C程编程,求大神解答!!
void editname() //按姓名修改{
struct student
{
char name[20];
char num[12];
float score;
int banji;
}stu[1000];
FILE *fp;
int i=0,n,pd;
float gscore;
char sname[20];
do
{
printf("请输入所修改的学生姓名:\n");
gets(sname);
printf("请输入修改后的成绩:\n");
scanf("%f",&gscore);
if((fp=fopen("stud_score.dat","rb"))==NULL)
{
printf("不能打开文件\n");
exit(0);
}
while(!feof(fp))
{
fscanf(fp,"%s %s %f %d",stu[i].name,stu[i].num,&stu[i].score,&stu[i].banji);
if(strcmp(sname,stu[i].name)==0)
stu[i].score=gscore;
i++;
}
fclose(fp);
if((fp=fopen("stud_score.dat","wb"))==NULL)
{
printf("不能打开文件\n"); exit(0);
}
for(n=0;n<i-1;n++)
fprintf(fp,"%s %s %f %d\n",stu[n].name,stu[n].num,stu[n].score,stu[i].banji);
printf("----------------------------\n");
printf("请选择是否继续修改?\n");
printf("1.是 0.否\n");
scanf("%d",&pd); getchar();
}while(pd==1);
fclose(fp);
}
这个修改完再次查询之后文件里什么都没有了,怎么改呀??