C语言单向链表,如何往文件里存入数据和读取数据 10用C语言单向链表记录信息比如说存这样的数据struct student{int num;int score;},然后存入某个文件里,最后读取数据,这该如何实现。最好能发个代码例子,谢谢 推荐于2016-09-09 00:51:02最佳答案 在c语言中,创建单链表需要使用到malloc函数动态申请内存;文件的读写需要首先使用fopen函数打开文件,然后使用fscanf,fgetc, fgets,fprintf,fputc,fputs等函数读写函数,最后读写完毕要使用fclose函数关闭函数。 下面的源程序展示了关于单链表如何从文件中读取数据和往文件里存入数据。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | #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;
}
|
其中input.txt中的数据如下图所示: ![](http://image106.360doc.com/DownloadImg/2017/05/0323/98197406_1.jpg)
|