c语言如何将文件的数据读入一个链表中 120
例如我先将链表中的数据放入文件,我关闭程序后,再次运行想把文件的内容再放到链表中,应该怎么样写?问题补充:文件内容如下怎么样放到链表里的对应的元素去啊如structles...
例如我先将链表中的数据放入文件,我关闭程序后,再次运行想把文件的内容再放到链表中,应该怎么样写?
问题补充:文件内容如下
怎么样放到链表里的对应的元素去啊
如
struct lesson
{
char name[10]
int no;
float workday;
float workyear;
}
怎么放到对应东东去啊? 如:我把name,no,workday;导出的文本文件以后,我在重新导入,然后让导入的数据在重写参与运算,比如修改,查询.等等!!!
<注>越详细越好,最好加上相应的注释!答得好的话我在追加100分..
可惜本人技术不够,只会导入,但不可以参与运算,所以请C高手帮忙,越快越好!!! 展开
问题补充:文件内容如下
怎么样放到链表里的对应的元素去啊
如
struct lesson
{
char name[10]
int no;
float workday;
float workyear;
}
怎么放到对应东东去啊? 如:我把name,no,workday;导出的文本文件以后,我在重新导入,然后让导入的数据在重写参与运算,比如修改,查询.等等!!!
<注>越详细越好,最好加上相应的注释!答得好的话我在追加100分..
可惜本人技术不够,只会导入,但不可以参与运算,所以请C高手帮忙,越快越好!!! 展开
展开全部
用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);
例如写文件,如果你想每一行放一个链表,可以这么写
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);
展开全部
#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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这么难,高手!^-^
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询