我尝试读取我的 FILE*
fp 指向的文件,我想知道文件的末尾在哪里。因此,我使用 fseek();
在文件末尾,我想从我的 structure data
中写入数据。
void printData(FILE *fp)
{
struct data tmp;
fseek(fp,0,SEEK_END);
while(fread(&tmp,sizeof(struct data),1,fp) > 0)
{
puts("test2");
printf("Vorname: %s\n",tmp.vorname);
printf("Nachname: %s\n",tmp.name);
printf("Adresse: %s\n",tmp.adresse);
}
}
我的结构是这样定义的:
struct data
{
char name[30];
char vorname[20];
char adresse[50];
};
我的问题是,while 循环一次都没有执行。我是不是忘记了什么?
最佳答案
fseek(fp,0,SEEK_END)
将文件指针定位在文件的末尾(起始点文件末尾的偏移量为 0),当您随后尝试从文件中读取 fread 时当然不读任何东西。
而是以追加模式打开文件并写入记录数,这些将被追加到文件中。
关于c - fread 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17360439/