void dk()
{
int id,m=0,i;
struct STU p;
FILE *fp;
if((fp=fopen("stu.txt","r"))==NULL)
{
printf("\n文件不存在!\n\n");
return;
}
while(!feof(fp))
{
if(fread(&stu[m],LEN,1,fp)==1)
m++;
}
fclose(fp);
if(m=0)
{
printf("\n文件里没有记录!\n\n");
return;
}
printf("\n\n请输入您的学号:\n\n");
printf("\n\n学号:");
scanf("%s",p.id);
for(i=0;i<m;i++)
{
if(strcmp(p.id,stu[i].id )==0)
{
printf("\n\n找到您的信息\n\n");
printf(" 学号 姓名 专业 C语言 计算物理学 大学物理 原子物理 光学\n");
printf(p_out,stu[i].id ,stu[i].name ,stu[i].zhuanye ,
stu[i].sc_1,stu[i].sc_2,stu[i].sc_3,stu[i].sc_4,stu[i].sc_5);
break;
}
}
if(i==m)
{printf("\n\n未找到您的信息!\n");}
}
这个是通过学号搜索学生,然后把学生的成绩等信息输出到屏幕上,但是每次我都找不到信息qwq,不知道怎么回事
这个是学生信息的一部分:
261003216 李鹏 测控2 74 81 66 66 99
281001102 关迪 物理 85 78 82 55 65
281001103 刘张世安 物理 69 69 90 75 84
281001104 佟璐 物理 92 86 75 71 92
281001105 腾云 物理 88 75 86 53 93
281001106 王目昱 物理 74 81 66 66 99
int input(char *in,struct STU *ps)
{
int i;
char a[200];
FILE *fp;
if((fp=fopen(in,"r+"))==NULL)
{
puts("未找到文件!\n");
exit(1);
}
for(i=0;i<1;i++) /*为了跳过前几行读取用的*/
{
fgets(a,200,fp);
}
i=0;
while(!feof(fp))
{
fscanf(fp,p_in,&ps[i].id ,ps[i].name ,ps[i].zhuanye ,&ps[i].sc_1 ,&ps[i].sc_2 ,&ps[i].sc_3 ,&ps[i].sc_4 ,&ps[i].sc_5 );
i++;
}
return i;
}
这个是输入数据的部分,应该没有问题的。可以把数据输出到屏幕上