69,382
社区成员
发帖
与我相关
我的任务
分享
typedef struct student{
char number[11];
char name[11];
char sex;
int age;
}Item;
typedef struct node{
Item item;
struct node * next;
}Node;
typedef Node * List;
/* 将List写入文件 */
void WriteToFile(const List * plist,char * filename){
Node * pnode = *plist;
FILE * fp;
int count=0;
if((fp = fopen(filename,"w+b"))==NULL){
fprintf(stderr,"%s 无法打开!,写入文件失败.\n",filename);
exit(1);
}
while(pnode!=NULL){
fwrite(pnode->item,sizeof(Item),1,fp);//这行报错,参数不对,要怎么改呢?第一个参数不可以这样吗?
pnode = pnode -> next;
count++;
}
fclose(fp);
printf("有%d条记录被写入文件\"%s\"中.\n",count,filename);
}
size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);
第一个参数要求传的是指针。。所以应该改为
fwrite(&pnode->item,sizeof(Item),1,fp);
fwrite(&(pnode->item),sizeof(Item),1,fp);
应该是传递地址