学生成绩管理系统
源.c
(11.85 KB)
(源代码)以下是发现出问题的部分
void ReadFromFile(char *fileName,struct StuLink * head) //从数据文件中逐行读取学生信息生成学生链表
{
int i=1;
FILE *fp;
struct StuLink *p1,*p2=NULL;
//文件指针变量fp
if((fp=fopen(fileName,"r"))==NULL)
{
printf("不能打开该文件!\n");
exit(0);
}
if((p1=(struct StuLink *)malloc(sizeof(struct StuLink)))==NULL)
{
printf("不能成功分配内存储块!");
exit(0);
}
p1->next =NULL;
while((fscanf(fp,"%s %d %d",p1->xm,p1->xb,p1->cj))!=EOF )
{
p1->xh=i;
if(i==1)head=p1;
else p2->next=p1;
p2=p1;
if((p1=(struct StuLink *)malloc(sizeof(struct StuLink)))==NULL)
{
printf("不能成功分配内存储块!");
exit(0);
}
p1->next =NULL;
i++;
}
printf("成功生成链表!");
}
不明白为什么在把文件里的内容放到链表里的时候会出现问题,循环只能进行一边,请大家指教!
目前调试初期 如果大佬发现源代码中其他问题,望得到指点可以改正