首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

fread读出来的是异常数值

2012-03-07 
fread读出来的是错误数值?用“rb+”方式打开文件,读出来的却是错误值printf(---%d,x3ftell(f1))fread((c

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

热点排行