段错误
编译没问题,可能是非法内存访问,void in()
{
int i,m=0;
char ch[2];
FILE *fp;
if((fp=fopen("data","a+"))==NULL)
{
printf("系统出错,请与开发人员联系!\n");
return;
}
while(!feof(fp))
{
if(fread(&stu[m],sizeof(struct student),1,fp)==1)
m++;
}
fclose(fp);
if(m==0)
printf("无学生成绩记录!\n");
else
{
system("cls");
show();
}
if((fp=fopen("data","w+"))==NULL)
{
printf("系统出错,请与开发人员联系!\n");
return;
}
printf("是否录入学生成绩,请按(y/n):");
scanf("%s",ch);
while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
{
printf("请输入学生学号:");
scanf("%d",&stu[m].num);
for(i=0;i<m;i++)
if(stu[i].num==stu[m].num)
{
printf("您输入的学号已经存在!");
getch();
fclose(fp);
return;
}
printf("请输入学生姓名:");
scanf("%s",&stu[m].name);
printf("c语言:");
scanf("%f",&stu[m].c);
printf("高数:");
scanf("%f",&stu[m].m);
printf("英语:");
scanf("%f",&stu[m].e);
stu[i].sum=stu[m].c+stu[m].e+stu[m].m;
if(fwrite(&stu[m],sizeof(struct student),1,fp)==1)
{
printf("%s成绩录入成功!\n",stu[i].name);
m++;
}
else
{
printf("不能保存,请与开发人员联系!\n");
}
}
fclose(fp);
}