编写c语言程序,从文件中读取数据顺序存储到单链表l中,文件中数据之间用逗号隔开

如题所述

在c语言中,创建单链表需要使用到malloc函数动态申请内存;文件的读写需要首先使用fopen函数打开文件,然后使用fscanf,fgetc, fgets,fprintf,fputc,fputs等函数读写函数,最后读写完毕要使用fclose函数关闭函数。
下面的源程序展示了关于单链表如何从文件中读取数据和往文件里存入数据。
#include<stdio.h>
#include<stdlib.h>
#include<memory.h>

typedef struct node {
int data;
struct node *next;
}node;

//从文件中读取数据存入链表
node *createlink()
{
node *head =(node*)malloc(sizeof(node));
int t;
node *p;
node *q;
p=q=head;
FILE * r= fopen("input.txt","r");
if(r==NULL)
{
printf("打开文件失败!");
return NULL;
}

while(fscanf(r,"%d",&t)!=EOF)
{
q= (node*)malloc(sizeof(node));
q->data=t;
p->next=q;
p=q;
}
p->next=NULL;
return head;
}

//输出链表到屏幕和文件output.txt
void outlink(node *head)
{
node *p=head->next;
FILE *w =fopen("output.txt","w");
if(w==NULL)
{
printf("打开文件失败!");
return;
}
while(p)
{
//输出链表节点数据到屏幕
printf("%d ",p->data);
//输出链表节点数据到文件output.txt
fprintf(w,"%d ",p->data);
p=p->next;
}
printf("\n");
fprintf(w,"\n");
fclose(w);
return;
}

int main()
{
node *head;
int n,m;
head=createlink();
outlink(head);
system("pause");
return 0;
}
温馨提示:答案为网友推荐,仅供参考
相似回答