为什么它总是输出“file write error”

来源:百度知道 编辑:UC知道 时间:2024/05/17 20:26:10
#include<stdio.h>
#include<math.h>
void main()
{
FILE *fp;
int i,e,a[50];
for(i=0;i<50;i++)
{e= rand();
a[i]=e ;}
fp=fopen("array","w");
for(i=0;i<50;i++)
{ if((fwrite(&a[i],sizeof(int),1,fp)!=1)
printf("file write error\n");
fclose(fp); }
fp==fopen("array","r");
for(i=0;i<50;i++)
{fread(&a[i],sizeof(a[i]),1,fp);
if(i%10)printf("\n");
printf("%6d",a[i]);
}

}

因为你在 for 的第一次就已经closefile了,,改成这样吧
你的:
for(i=0;i<50;i++)
{ if((fwrite(&a[i],sizeof(int),1,fp)!)=1)
printf("file write error\n");
fclose(fp); }

我的:
for(i=0;i<50;i++)
{ if((fwrite(&a[i],sizeof(int),1,fp))!=1)
{printf("file write error\n");}
}
fclose(fp);