c语言如何将文件的数据读入一个链表中 120

例如我先将链表中的数据放入文件,我关闭程序后,再次运行想把文件的内容再放到链表中,应该怎么样写?问题补充:文件内容如下怎么样放到链表里的对应的元素去啊如structles... 例如我先将链表中的数据放入文件,我关闭程序后,再次运行想把文件的内容再放到链表中,应该怎么样写?
问题补充:文件内容如下
怎么样放到链表里的对应的元素去啊

struct lesson
{
char name[10]
int no;
float workday;
float workyear;
}
怎么放到对应东东去啊? 如:我把name,no,workday;导出的文本文件以后,我在重新导入,然后让导入的数据在重写参与运算,比如修改,查询.等等!!!
<注>越详细越好,最好加上相应的注释!答得好的话我在追加100分..
可惜本人技术不够,只会导入,但不可以参与运算,所以请C高手帮忙,越快越好!!!
展开
 我来答
御兰芝Lp
2007-06-28 · 超过29用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:0
展开全部
用fscanf和fprintf,如果是C++的话用fstream更加方便。
例如写文件,如果你想每一行放一个链表,可以这么写
FILE *f=fopen("abc.txt");
//然后对链表每一个元素
fprintf(f,"%s %d %f %f\n",name,&no,&workday,&workyear);

fclose(f);
然后你打开abc.txt,看看它是怎么存的。
读文件刚好相反,用scanf:

FILE *f=fopen("abc.txt");
//然后对文件的每一行,读到变量里

while(fscanf(f,"%s %d %f %f\n",name,&no,&workday,&workyear)!=EOF)
{
吧name,no,...赋值到链表里面
}

fclose(f);
一骑当后
2015-07-05 · 知道合伙人数码行家
一骑当后
知道合伙人数码行家
采纳数:40298 获赞数:306440
网络、设备维护、电路、弱电检测。

向TA提问 私信TA
展开全部
#include<stdio.h>
#include<stdlib.h>
 
struct date
{
    char str[3];
    struct date *next;
};
 
//链表长度为len
struct date *create_link(int len)
{
    struct date *head;
    struct date *tmp;
    int i;
    head = malloc(sizeof(struct date));
    tmp = head;
    for(i = 1; i < len; ++i)
    {
        head ->next = malloc(sizeof(struct date));
        head = head ->next;
    }
    head ->next = NULL;
    return tmp;
}
 
//读文件到链表
void read_file_to_link(struct date *head,FILE *fp)
{
    if(head == NULL || fp == NULL)
    {
        fprintf(stderr,"null pointer");
        exit(EXIT_FAILURE);
    }
        do
        {
            fscanf(fp,"%3s",head ->str);
            head = head ->next;
        }while(head != NULL);
}
 
//显示链表中的内容
void print_link(struct date *head)
{
    if(head == NULL)
    {
        fprintf(stderr,"null pointer");
        exit(EXIT_FAILURE);
    }
    do
    {
        printf("%s",head ->str);
        head = head ->next;
    }while(head != NULL);
}
 
int main()
{
    FILE *fp;
    int len; //链表长度
    scanf("%d",&len);
    fp = fopen("a.txt","r");
    struct date *head;
    head = create_link(len);
    read_file_to_link(head,fp);
    print_link(head);
 
    exit(EXIT_SUCCESS);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
同进退5qgj
2007-06-29 · 超过30用户采纳过TA的回答
知道答主
回答量:97
采纳率:0%
帮助的人:0
展开全部
这么难,高手!^-^
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式