为什么 fread returns 零以及文件何时有内容

Why fread returns Zero and when the files has contents

我正在尝试读取文件的内容 "sym.dat" 即使通过文件的内容 fread returns 为零,我也尝试使用 ferror 但它没有显示任何错误。

FILE *fp;
fp=fopen("sym.dat","ab");

struct node a;
    fseek(fp, 0L, SEEK_SET); 

while((fread(&a,sizeof(struct node),1,fp))==1)
{

printf("bello");

}}

它returns 0

正在做

 fp=fopen("sym.dat","ab");

你打开文件从末尾开始write,而不是read,所以[=12中的测试=] 立即为假,您不打印 "bello"

fp=fopen("sym.dat","rb");

并检查 fp 是否为 NULL。

fseek没用,打开就在开头

别忘了关闭文件


如果需要读写,用标志"rb+"打开,fseek还是没用