void load_info ()
{
FILE* fp;
Employer* p;
int maxId = 0 ;
double a=0;
if((fp=fopen("d:\Salary.txt","r"))==NULL)
{//打开文件
printf ("文件读取失败");
exit(0);
}
p= (Employer*) malloc (sizeof ( Employer));//生成不存数据的头结点
p->next = NULL;
head = p;//使头指针指向头结点 表头
q = p ; //q 永远都是最后一个
while(!feof(fp))//文件的问题 。。。 应该是刚才保存后出现的问题 也就是 你保存的有问题 我们可以试试
{
p = ( Employer* ) malloc ( sizeof ( Employer ));//申请一个新的节点插入到q的后面
fscanf(fp,"%d%s%s%d%s%d",&p->id,p->name,p->sex,&p->age,p->department,&p->post);
// ↑你在这加什么& ↑还有这里 这个不删
if(feof(fp))//读取结束跳出循环
{
p->next = NULL;
break;
}
if ( maxId< p->id )
maxId = p-> id;//获得最大职工号
p -> next = NULL;//将p->next指针设为空
q ->next = p ;//连接新节点
q = p;//j将q指针移到当前最后一个节点
if(feof(fp))
break;
}
fclose(fp);
}