实现效果:
实现代码:
project.c:
//导入信息函数
contacts con_pushin()
{
FILE* lp=fopen("./projectnews.txt","r");
//给链表申请空间
contacts O=(contacts)malloc(sizeof(node));
if(NULL==O)
{
printf("申请失败\n");
return NULL;
}
//申请成功则初始化
O->name[20]=0;
O->sex[10]=0;
O->num=0;
O->phone[20]=0; //数据域初始化
O->len=0; //长度初始化
O->next=NULL; //指针域初始化
printf("链表预创建创建成功\n");
//创建输入数组
datatype n[20];
char x[10];
int b;
datatype h[20];
while(!feof(lp))
{
//读取信息fscanf遇到空格回车会停止
fscanf(lp,"%s",n);
fscanf(lp,"%s",x);
fscanf(lp,"%d",&b);
fscanf(lp,"%s",h);
//将读取的信息存入到新建的链表的节点中
//调用头插函数
contacts p=(contacts)malloc(sizeof(node));
if(NULL==p)
{
printf("申请结点失败\n");
return NULL;
}
//将数据封装到结点中
strcpy(p->name,n); //将姓名封装到数据域中
strcpy(p->sex,x); //将性别封装到数据域中
p->num=b; //将编号封装到数据域中
strcpy(p->phone,h); //将号码封装到数据域中
p->next=NULL; //指针指向空
//头插逻辑
p->next=O->next;
O->next=p;
printf("添加信息成功\n");
//长度变化
O->len++;
}
printf("导入信息到新链表成功\n");
return O;
}