从二进制文件读取为什么总是不对。。。

#include

void main()
{
int a[2][2]={2,2,2,2};
int b[2][2];
FILE *file;
FILE *infile;
file=fopen("ok.txt","wb");
fwrite(a,sizeof(a),1,file);
infile=fopen("ok.txt","rb");
fread(b,sizeof(b),1,infile);
printf("%d",b[1][1]);
}

怎么不对,你文件格式,是否符合你定义的数组格式

文件写完要先关闭,否则还没有实际写入文件。这时去读肯定读不到。

file=fopen("ok.txt","wb");
fwrite(a,sizeof(a),1,file);
fclose(file);
infile=fopen("ok.txt","rb");
fread(b,sizeof(b),1,infile);

关闭之前,其实可以fflush一下啊

之前打开的文件流要先关闭,才能从缓存区写到文件中,然后在去打开读取文件就行了。读和写之间加个fclose(file); OK