c语言,从文件中读取单链表并输出。
2个回答
展开全部
需求有点不清晰,你要从文件里取什么东西出来?
我改了从txt取每一行的字符串出来,记录在你的链表,你参考一下
#include
"stdafx.h"
#include
"stdlib.h"
int
main()
{
struct
fac
{
//int
data;
char
data[256];
//不知道你要取什么数据,这里用个字符串数组代替
struct
fac
*next;
}*phead;
int
i;
FILE
*fp=fopen("d:\\text.txt","rb");
//一个有内容的txt文本,自己替换
struct
fac
*p;
struct
fac
*ptemp;
phead=(struct
fac*)malloc(sizeof(struct
fac));
phead->next=NULL;
ptemp=phead;
//fread(p,sizeof(struct
fac),1,fp);
while(fgets(
ptemp->data,256,fp
)!=NULL)//改用fgets取一行的数据
{
printf("%s\n",ptemp->data);
p=(struct
fac*)malloc(sizeof(struct
fac));
ptemp->next=p;
ptemp
=
ptemp->next;
}
//后面还应该有个释放链表的操作,这里程序结束会回收,就不写了。
}
我改了从txt取每一行的字符串出来,记录在你的链表,你参考一下
#include
"stdafx.h"
#include
"stdlib.h"
int
main()
{
struct
fac
{
//int
data;
char
data[256];
//不知道你要取什么数据,这里用个字符串数组代替
struct
fac
*next;
}*phead;
int
i;
FILE
*fp=fopen("d:\\text.txt","rb");
//一个有内容的txt文本,自己替换
struct
fac
*p;
struct
fac
*ptemp;
phead=(struct
fac*)malloc(sizeof(struct
fac));
phead->next=NULL;
ptemp=phead;
//fread(p,sizeof(struct
fac),1,fp);
while(fgets(
ptemp->data,256,fp
)!=NULL)//改用fgets取一行的数据
{
printf("%s\n",ptemp->data);
p=(struct
fac*)malloc(sizeof(struct
fac));
ptemp->next=p;
ptemp
=
ptemp->next;
}
//后面还应该有个释放链表的操作,这里程序结束会回收,就不写了。
}
展开全部
#include
#include
typedef
int
datatype;
typedef
struct
node
{
datatype
data;
struct
node
*next;
}
lnode,*linklist;
void
createlist(linklist
&l,char
*filename){
//创建带头结点的单链表
file
*fp;
if((fp=fopen(filename,"r"))==null){
printf("文件没找到!\n");return;}
l=(linklist)malloc(sizeof(lnode));//创建头结点
linklist
p=l;
while(!feof(fp)){
linklist
q=(linklist)malloc(sizeof(lnode));
datatype
e;
fscanf(fp,"%d",&e);//使用格式化读取文件中的数据
q->data=e;p->next=q;p=q;
}
p->next=null;
fclose(fp);
}
int
main(){
linklist
l;
createlist(l,"1.txt");
linklist
p=l->next;
while(p){//输出单链表的数据
printf("%d\t",p->data);p=p->next;
}
printf("\n");
return
0;
}
//在vc++6.0下运行,源文件扩展名应为:.cpp,若为.c要修改函数参数
#include
typedef
int
datatype;
typedef
struct
node
{
datatype
data;
struct
node
*next;
}
lnode,*linklist;
void
createlist(linklist
&l,char
*filename){
//创建带头结点的单链表
file
*fp;
if((fp=fopen(filename,"r"))==null){
printf("文件没找到!\n");return;}
l=(linklist)malloc(sizeof(lnode));//创建头结点
linklist
p=l;
while(!feof(fp)){
linklist
q=(linklist)malloc(sizeof(lnode));
datatype
e;
fscanf(fp,"%d",&e);//使用格式化读取文件中的数据
q->data=e;p->next=q;p=q;
}
p->next=null;
fclose(fp);
}
int
main(){
linklist
l;
createlist(l,"1.txt");
linklist
p=l->next;
while(p){//输出单链表的数据
printf("%d\t",p->data);p=p->next;
}
printf("\n");
return
0;
}
//在vc++6.0下运行,源文件扩展名应为:.cpp,若为.c要修改函数参数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询