编写一条学生链表,写一些能够像链表里边添加数据的函数 实现:将链表中的所有内容保存到文件中去 以及 读取文件中的所有内容,加载到链表里
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef int datatype;
typedef struct node
{char name[10];int age;datatype class;struct node *next;
}node,*node_p;
node_p create_link()
{node_p p=(node_p)malloc(sizeof(node));if(p==NULL){printf("ERROR\n");return NULL;}p->next=NULL;return p;
}
void create_node(node_p L,char name[10],int age,datatype class)
{node_p new=(node_p)malloc(sizeof(node));if(new==NULL){printf("ERROR\n");return ;}new->next=L->next;L->next=new;strcpy(new->name,name);new->age=age;new->class=class;}
void free_link(node_p L){node_p temp;while(L!=NULL){temp=L;L=L->next;free(temp);}
}
void show(node_p L)
{if(L==NULL){printf("ERROR\n");return ;}node_p p=L->next;while(p!=NULL){printf("%s %d %d\n",p->name,p->age,p->class);p=p->next;}
}
int main(int argc, const char *argv[])
{node_p L=create_link();create_node(L,"gg",18,9);create_node(L,"liu",17,7);create_node(L,"ff",18,11);
// show(L);FILE* fp=fopen("./student.txt","w");node_p p=L->next;while(p!=NULL){fprintf(fp,"%s %d %d\n",p->name,p->age,p->class);p=p->next;}fclose(fp);FILE* fp2=fopen("./student.txt","r");node_p H=create_link();char na[10];int ag=0;int cl=0;while(fscanf(fp2,"%s %d %d",na,&ag,&cl)==3){create_node(H,na,ag,cl);}show(H);free_link(L);free_link(H);fclose(fp2);return 0;
}