大牛们帮我看看为什么我的代码只能读一组数据,多组数据写入时会覆盖前一组
int bookread(){
ptcs p=head;
int i,m,j=0;
ptcs tem;
FILE* fp;
if((fp=fopen("D:\\bookdata.txt","rb"))==NULL){
printf("无法打开文件\n");
return -1;
}
fseek(fp,0,SEEK_END);
i=ftell(fp); //获取文本容量大小
fseek(fp,0,SEEK_SET); //将文本指针移动到文本开头
m=(i/(sizeof(book))); //获取文本中联系人个数 正确
book b;
while(m>0){
fread(&b,sizeof(book),1,fp);
tem=(ptcs)malloc(sizeof(*tem));
tem->next=p;
memset(tem,0,sizeof(*tem));
memcpy(tem,&b,sizeof(book));
p->next=tem;
j++;
m--;
}
fclose(fp);
printf("信息读取完毕!\n");
return 0;
}
ptcs p=head;
int i,m,j=0;
ptcs tem;
FILE* fp;
if((fp=fopen("D:\\bookdata.txt","rb"))==NULL){
printf("无法打开文件\n");
return -1;
}
fseek(fp,0,SEEK_END);
i=ftell(fp); //获取文本容量大小
fseek(fp,0,SEEK_SET); //将文本指针移动到文本开头
m=(i/(sizeof(book))); //获取文本中联系人个数 正确
book b;
while(m>0){
fread(&b,sizeof(book),1,fp);
tem=(ptcs)malloc(sizeof(*tem));
tem->next=p;
memset(tem,0,sizeof(*tem));
memcpy(tem,&b,sizeof(book));
p->next=tem;
j++;
m--;
}
fclose(fp);
printf("信息读取完毕!\n");
return 0;
}