链表文件读取与写入的C语言程序代码怎么写啊?

链表文件读取与写入的C语言程序代码怎么写啊?,第1张

一边读取链表里面的内容,一边使用write函数写进文雹陵模件;

一边用read函数读取文件信息源缓,一边保存在链表中。

链表保存信息,必须要结构体,因为要有地址保存下个链表的地址

struct test

chararry[100]//汪冲用于保存信息

struct test * next//用于保存下个内容信息的指针地址

};

这样就可以把信息链接在一起了。

楼主你看看下面。我把你创建的链表写到了d盘名叫shebei的文件中,然后又将你的文件中的链表读到了结构体数组SingleInfo中。

我也是新手共同学习学晌拿习(*^__^*) 

void RW_File(SHEBEI *head)/*head是你刚刚创建的链表的头指针*/

{

    SHEBEI SingleInfo[20]

    FILE fp

    int i=0

    if((fp = fopen("d:\\shebei","wb+")) 轮首== NULL)

    {

        printf(“can not open file”)

        exit(1)

    }

    while(head)

    {

        fwrite(head,sizeof(SHEBEI),1,fp)

        head = head->next

    }

    rewind(fp)/*到这里已经把链表写入到d盘的shebei文件中*/

    while(!feof(fp))

    fread(SingleInfo,sizeof(SHEBEI),1,fp)

    宴桐搭i++

    fclose(fp)

    

}

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

}

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

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12133219.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存