fread读出来的是错误数值?
用“rb+”方式打开文件,读出来的却是错误值
printf("---%d",x3=ftell(f1));
fread((char*)&x1,1,1,f1);
printf("HTB of current lib is: %d",x1);
printf("\nInput new set: ");
printf("---%d",x3=ftell(f1));
scanf("%u",&x1);
while( (x0=getchar())!='\n' );
fseek(f1,-1,SEEK_CUR);
fwrite((char*)&x1,1,1,f1);
输出为:
---3 ---4
在UE下查看磁盘上的文件,值应该为6.但是printf显示的都是0!但是写数据的话,fwrite又能写正确的值
这有可能是什么回事呢?
[解决办法]
可以对x1作初始化
再看fread((char*)&x1,1,1,f1); 的返回值
结合返回值的大小和x1是否有变化来判断是否读成功了!!
[解决办法]
fread((char*)&x1,1,1,f1);
这条语句只读了文件中的一个字节;从ftell来看第3字节。确定文件中的第三字节不是0?
[解决办法]
fflush(f1) ?
[解决办法]
up