链表写入文件与读出 c语言

链表写入文件与读出c语言structstu{longnum;charname[10];intscore;structstu*next;}求这个链表写入文件和文件读出成链表... 链表写入文件与读出 c语言struct stu
{long num;
char name[10];
int score;
struct stu *next;
} 求这个链表写入文件和文件读出成链表
展开
 我来答
风若远去何人留
2017-01-13 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450134
专业C/C++软件开发

向TA提问 私信TA
展开全部
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;
}

以上是不带头结点链表的读写。 

带头结点的, 只需要稍做改动即可。 

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式