如何读出链表中的文件

来源:百度知道 编辑:UC知道 时间:2024/05/06 09:23:13
#include "stdio.h"
#include "conio.h"
#include "math.h"

struct node
{int data;
struct node *next;};
typedef struct node AA;/* 建立解构 */
AA *creat()/* 函数 */
{int c;
AA *h,*s,*r,*b;
r=(AA *)malloc(sizeof(AA));/* 分配动态 */
h=r;/* r指向H */
scanf("%d",&c);/* 输入数据 */

while(c!=-1)
{s=(AA *)malloc(sizeof(AA));
s->data=c; /* S是链表的开 */
r->next=s;
r=s;
scanf("%d",&c);}
r->next='\0';
return h->next;}

print_(AA *head)
{AA *p=0;
p=head; <------输出函数
while(p)
{printf("->%d",p->data);
p=p->next;}printf("end");}

bao(AA *head)
{AA *p=0;FILE *fp;int i=0;
p=head;
fp=fopen("d:\\zhu","wb"); 《-----保

可能应该是feof(fp)这句,试图向前读一个字节,测试是否为文件尾。那么文件指针已经移动了,所以你需要while内第一句写下fseek(...)将指针往回撤一个字节。

请问,你读懂我的话了吗?第一行

while(!feof(fp))
{ l=(AA *)malloc(sizeof(AA)); <------就是这里不明白无办法读出来
if(fread(l,sizeof(AA),1,fp))
{ p=l;
i++; <---------- 到底那里写错了~~这里怎么改才
能读出来
}}

AA *du()
{AA *l,*p=0; int i=0; FILE *fp;
fp=fopen("d:\\zhu","rb");
if(fp!=NULL)
{ l=(AA *)malloc(sizeof(AA)); /* 这是读文件为什么读不出来请问要如何改 */
while(!feof(fp))
if((fread(l,sizeof(AA),1,fp)))
{p->next=l;
p=l;
i++;}
printf("一共有%d位同学\n",i); fclose(fp);
return p->next;}
else
printf("没有资料");}
你看看这个读文件