im试图读取文件“ 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
答案 0 :(得分:2)
做
fp=fopen("sym.dat","ab");
您打开文件时要从其末尾进行写入,而不是对其进行读取,因此while((fread(&a,sizeof(struct node),1,fp))==1)
中的测试立即为假,您可以不打印“贝洛”
做
fp=fopen("sym.dat","rb");
并检查 fp 不是NULL。
fseek 是没有用的,当您打开它时,它就处于开始状态
别忘了关闭文件
如果您需要使用“ rb +”标志打开它进行读写,则 fseek 仍然没有用。