链表写入文件与读出 c语言
链表写入文件与读出c语言structstu{longnum;charname[10];intscore;structstu*next;}求这个链表写入文件和文件读出成链表...
链表写入文件与读出 c语言struct stu
{long num;
char name[10];
int score;
struct stu *next;
} 求这个链表写入文件和文件读出成链表 展开
{long num;
char name[10];
int score;
struct stu *next;
} 求这个链表写入文件和文件读出成链表 展开
1个回答
展开全部
struct stu
{long num;
char name[10];
int score;
struct stu *next;
};
#define SIZE (&(((struct stu *)NULL)->next))
int save(struct stu *l, char *file)
{
FILE *fp;
fp = fopen(file, "wb");
if(fp == NULL) return 0;
while(l)
{
fwrite(l, SIZE, 1, fp);
}
fclose(fp);
return 0;
}
struct stu *load(char *file)
{
FILE *fp;
struct stu *h=NULL, *p,*t;
fp = fopen(file, "wb");
if(fp == NULL) return NULL;
while(l)
{
t = (struct stu *)malloc(sizeof(struct stu));
fread(t, SIZE, 1, fp);
t->next=NULL;
if(feof(fp))
{
free(t);
break;
}
if(h==NULL) h = p = t;
else
{
p->next= t;
p=t;
}
}
fclose(fp);
return h;
}
以上是不带头结点链表的读写。
带头结点的, 只需要稍做改动即可。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询