(请忽略功能文字,只是一个功能的完善,没有去修改)
以下是文件存储读取的代码
#include "record.h"
//文件存储操作函数
void save(const BOOK *top)
{
const BOOK *p;
FILE *fp;
if(count==0)
{
printf("没有记录可存!");
return;
}
if((fp=fopen("BOOK.TXT","wb"))==NULL)
{
printf("不能打开文件!\n");
exit(1);
}
printf("\n存文件\n");
p=top;
while(p)
{
fwrite(p,LEN,1,fp);
p=p->next;
}
fclose(fp);
printf("%d条记录已经存入文件,请继续操作。\n",count);
}
//文件读取操作函数
BOOK *load(BOOK *top)
{
FILE *fp;
BOOK *p,*old;
count=0;
top->next=NULL;
old=top;
if((fp=fopen("BOOK.TXT","rb"))==NULL)
{
printf("打不开文件!\n");
exit(1);
}
printf("\n取文件...\n");
while(!feof(fp))
{
ASK(p);
if(1!=fread(p,LEN,1,fp)) break;
else{
count=count+1;
p->next=NULL;
old->next=p;
old=p;
}
}
fclose(fp);
printf("取入%d条记录。",count);
return top;
}
/*
#include "record.h"
void writeToFile(){
FILE *out;
out = fopen( "BOOK.txt", "wb" );
if(out==NULL){
printf("无法打开文件!\n");
return;
}
p=head;
while(p!=NULL){
fwrite(p,LEN,1,out);
p=p->next;
printf("输出文件!\n");
}
fclose(out);
}
void readFromFile(){
FILE in;
in = fopen( "BOOK.txt", "rb" );
if(in==NULL){
printf("无法打开文件!\n");
return;
}
count=0;
head=NULL;
p=NULL;
old=NULL;
ASK(p);
while(!feof(in)){
if(fread(p,LEN,1,in)!=1)
break;
if(head==NULL){
head=p;
}else{
old->next=p;
}
old=p;
count++;
printf("读入文件!\n");
ASK(p);
}
old->next=NULL;
printf("readin count:%d\n",count);
fclose(in);
}*/
麻烦各位大神了