链表文件的读取和保存问题
想了一整天,实在想不出到底哪里有问题了输出结果:
ID:1,a
ID:2,b
ID:3,c
ID:-842150451,屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯 //为什么会出来这个
保存/读取函数:
程序代码:
void save_bin(Book *head){ //将链表中的所有数据以二进制保存在文件目录 //参数:头指针 FILE *fp=fopen("save","wb"); Book *p=head; //Book是一个typedef声明的结构体 if(!fp){ printf("生成文件失败!\n"); PAUSE; return ; //返回原函数 } else while(p){ fwrite(p,sizeof(Book),1,fp); p=p->next; } printf("文件保存成功!\n"); fclose(fp); //关闭文件,并保存 PAUSE; //#define PAUSE system("pause") } //读取函数 void load_bin(Book *head){ Book *p1=head,*p2; FILE *fp=fopen("save","rb"); if(!fp) printf("读取文件失败!\n"); else{ while(1){ if(fread(p1,sizeof(Book),1,fp)!=1) break; p2=malloc(sizeof(Book)); p1->next=p2; p1=p2; } p1->next=NULL; fclose(fp); printf("读取文件成功!\n"); PAUSE; } }
[ 本帖最后由 FireRabbit 于 2015-10-3 10:56 编辑 ]