int input(char *in,struct STU *ps)
{
FILE *fp;
int i;
if((fp=fopen(in,"r"))==NULL)
{
puts("未找到文件!\n");
exit(1);
}
i=1;
while(!feof(fp))
{
fscanf(fp,iin,ps->id,ps->name,ps->zhuanye,&ps->sc_1,&ps->sc_2,&ps->sc_3,&ps->sc_4,&ps->sc_5);
i++;
ps++;
}
fclose(fp);
return i;
}
这段函数是把文件里的数据然后放进程序的
(main函数里面写的是 NUM==input("stu.txt",stu);)
这部分是文件
但是一运行就会自动退出,求教
input()函数这么写,供参考:
int input(char *in,struct STU *ps)
{
FILE *fp;
int i=0;
if((fp=fopen(in,"r"))==NULL)
{
puts("未找到文件!\n");
exit(1);
}
while(1){
if(fscanf(fp,"%s %s %s %d %d %d %d %d\n",ps[i]->id,ps->name,ps[i]->zhuanye,&ps[i]->sc_1,
&ps[i]->sc_2,&ps[i]->sc_3,&ps[i]->sc_4,&ps[i]->sc_5)!=8) break;
i++;
}
fclose(fp);
return i;
}
(main函数里面写的是 NUM==input("stu.txt",stu);),这里用=就好了,是赋值,不是判断。
fscanf(fp,iin,ps->id,ps->name,ps->zhuanye,&ps->sc_1,&ps->sc_2,&ps->sc_3,&ps->sc_4,&ps->sc_5);这里的iin是哪来的?看文件格式这句应该这样写:fscanf(fp,"%s %s %s %d %d %d %d %d\n",ps->id,ps->name,ps->zhuanye,&ps->sc_1,&ps->sc_2,&ps->sc_3,&ps->sc_4,&ps->sc_5);
学号id还是int型,那句相应改下:if(fscanf(fp,"%d %s %s %d %d %d %d %d\n",&ps[i]->id,ps->name,ps[i]->zhuanye,&ps[i]->sc_1,
&ps[i]->sc_2,&ps[i]->sc_3,&ps[i]->sc_4,&ps[i]->sc_5)!=8) break;