【发布时间】:2019-07-07 12:32:37
【问题描述】:
我试图读取文件“sym.dat”的内容,即使文件的内容 fread 返回零,我也尝试使用 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");
}}
返回 0
【问题讨论】:
-
当
fread返回零时,您是否尝试过检查feof或ferror以了解原因? -
您应该以
rb模式打开文件,而不是ab。ab用于写入而不是读取,它位于文件末尾。 -
您确定“有内容”的文件在当前工作目录中吗?
-
我尝试了 feof 和 ferror 但它没有显示任何错误。我必须读取文件的内容并向其附加一些内容。这就是我使用ab模式的原因。 @Barmar
-
你确定你打开了文件吗?因为您阅读了它,为什么不使用“rb”标志打开它?你不检查 fopen 的结果。为什么要调用 fseek ?
标签: c file structure binaryfiles symbol-table