我通过追加的方式往文件里写一个结构体。但是在读出文件并打印的屏幕上的时候遇到的困难,不知道处理。代码参考如下。
#include<stdio.h> #include<stdlib.h> #include<stdio.h> #define URL "data" //二进制内容写在当前目录下的 data文件 #define SIZE 3 struct man_tppe { char name[20]; int age; }aman,men[SIZE] void saveone() { FILE *fp; if((fp = fopen(URL,"awb"))==NULL) //追加写 { printf("can not open file\n"); return; } if(fwrite(&aman,sizeof(struct man_tppe),1,fp)!=1) printf("file write error!\n"); fclose(fp); } void input() { printf("输入一个人的名字 和 年龄\n"); scanf("%s%d",aman.name,&aman.age); } void load() { FILE *fp; if((fp = fopen(URL,"rb"))==NULL) //读文件 { printf("can not read file\n"); return; } //往下不会写了 fread(&aman,sizeof(struct man_tppe),1,fp); fclose(fp); } void output() { }
feof
或者每次写记录前先一个要写的记录个数,这样读的时候先读出个数,再循环读记录
专门写文件的记录方法我已经会了。我想知道feof的具体用法。
while(feof(fp)!=0)
读文件
还是不成功。
@李公子: 返回值判断不对吧,while (!feof(pFile)) 参考