新手求助,文件读取问题,谢谢各位大侠
程序目的:1、向student.dat文件写入一些教师的基本数据2、从文件中读取录入的教师的数据,并建立单向链表
3、显示单向链表
程序编写如下:#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct{
long number;
char name[10];
char sex[5];
char work[10];
}Tea;
typedef struct link{
Tea m;
struct link *next;
}Node,*Link;
void insert()
{
int n;
Tea tea;
FILE *p;
p=fopen("teacher.dat","wb");
if(p==NULL)
{
printf("创建student.dat文件失败!\n");
exit(0);
}
printf("请输入您要输入老师的个数:");
scanf("%d",&n);
for(int i=0;i<n;i++)
{
printf("请输入第%d个老师的数据:教工号 姓名 性别 所属系别\n",i);
scanf("%ld%s%s%s",&tea.number,tea.name,tea.sex,tea.work);
fwrite(&tea,sizeof(Tea),1,p);
}
fclose(p);
}
Link creat()
{
int n=0;
int k;
FILE *p1;
Link p,q,head=NULL;
Tea tea;
p1=fopen("teacher.dat","rb");
if(p1==NULL)
{
printf("打开student.dat文件失败!\n");
exit(0);
}
while(!feof(p1))
{
k=fread(&tea,sizeof(Tea),1,p1);
if(k==1)
{
n++;
p=(Link)malloc(sizeof(Node));
p->m.number=tea.number;
strcpy(p->m.name,tea.name);
strcpy(p->m.sex,tea.sex);
strcpy(p->m.work,tea.work);
p->next=NULL;
if(n==1) head=p;
else q->next=p;
q=p;
}
}
fclose(p1);
return(head);
}
void show(Link h)
{
Link p;
p=h;
while(p)
{
printf("%ld\t%s\t%s\t%s\n",p->m.number,p->m.name,p->m.sex,p->m.work);
p=p->next;
}
}
int main()
{
Link h;
insert();
h=creat();
show(h);
return 0;
}
程序编译通过,但是连接不行,不能产生obj文件,求各位大侠指点,不胜感激!!