void readdata(void)
{
FILE *fp;
EMP *emp1;
if((fp=fopen("employee.txt","r"))==NULL)
{
gfirst=1;
return;
}
while(!feof(fp))
{
emp1=(EMP *)malloc(sizeof(EMP));
if(emp1==NULL)
{
printf("内存分配失败!\n");
getch();
return;
}
fscanf(fp,"%d%s%s%s%d%s%d%s%s%s%s%s",emp1->num,emp1->duty,emp1->name,emp1->sex,emp1->age,emp1->edu,emp1->salary,emp1->tel_office,emp1->tel_home,emp1->mobile,emp1->qq,emp1->address);
fread(emp1,sizeof(EMP),1,fp);
if(feof(fp)) break;
if(emp_first==NULL)
{
emp_first=emp1;
emp_end=emp1;
}else{
emp_end->next=emp1;
emp_end=emp1;
}
emp_end->next=NULL;
}
gfirst=0;
fclose(fp);
}
修改如下,供参考:
void readdata(void)
{
FILE *fp;
EMP *emp1;
if((fp=fopen("employee.txt","r"))==NULL)
{
gfirst=1;
return;
}
while(!feof(fp))
{
emp1=(EMP *)malloc(sizeof(EMP));
if(emp1==NULL){
printf("内存分配失败!\n");
getch();
return;
}
fscanf(fp,"%d%s%s%s%d%s%d%s%s%s%s%s",emp1->num,emp1->duty,emp1->name,emp1->sex,emp1->age,
emp1->edu,emp1->salary,emp1->tel_office,emp1->tel_home,emp1->mobile,emp1->qq,emp1->address);
//fread(emp1,sizeof(EMP),1,fp);
//if(feof(fp)) break;
if(emp_first==NULL)
{
emp_first=emp1;
emp_end=emp1;
}else{
emp_end->next=emp1;
emp_end=emp1;
}
}
emp_end->next=NULL;
gfirst=0;
fclose(fp);
}
不知道你这个问题是否已经解决, 如果还没有解决的话: