求助:输出总是有乱码
struct empoyee * open(void) //这个函数是把文件中的结构体类型数据载入链表{
int n=0;
struct empoyee *fhead,*p1,*p2;
FILE *fp;
fhead=NULL;
p1=p2=(struct empoyee *)malloc(LEN);
if((fp=fopen("employee.txt","rb"))==NULL)
{
printf("无法打开文件!\n");
exit(0);
}
while(!feof(fp))
{
n=n+1;
fread(p1,LEN,1,fp);
if(n==1)
fhead=p1;
else
p2->next=p1;
p2=p1;
p1=(struct empoyee *)malloc(LEN);
}
p2->next=NULL;
fclose(fp);
return (fhead);
}
void print(struct empoyee * head) //这个函数是输出链表
{
struct empoyee * p;
p=head;
system("cls");
if(p==NULL)
printf("无任何信息!\n");
else
{
printf("姓名 工号 性别 年龄 地址 收入 健康状况 教育程度\n");
while(p!=NULL)
{
printf("%-8s%-8ld%-8c%-8d%-10s%-8d%-11s%-8s\n",p->name,p->num,p->sex,p->age,p->addr,p->wage,p->health,p->edu);
p=p->next;
}
}
}
当调用这两个函数来显示文件中的数据时,总是会显示一些乱码,如下图所示,不知道程序哪里错了