如何使用fread读取数据文件?

Researcher 2003-10-20 11:08:03
我用fwrite写好数据文件后
再用类似的流程fread这个数据文件,但总是读入的数据和结果不一致。
请问有什么诀窍?
我已经发现fread的返回值经常和count不一致,但fwrite是一致的。
...全文
301 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Researcher 2003-10-21
  • 打赏
  • 举报
回复
一切搞定,大家猜问题出在哪儿?
fp=fopen("MapEdit\\Test2.Map","r")
改为
fp=fopen("MapEdit\\Test2.Map","rb")

fp=fopen("MapEdit\\Test2.Map","w")
改为
fp=fopen("MapEdit\\Test2.Map","wb")
就好了~!
Researcher 2003-10-21
  • 打赏
  • 举报
回复
class TILE
{ public:
short wallindex[8],type;
float h0,h1;
float WallHeight0[4];
....
}
class STAGE
{ ....
TILE tile[200][200];
....
}
void STAGE::SaveToFile()
{ FILE *fp;
if((fp=fopen("MapEdit\\Test2.Map","w"))!=NULL)
{ fwrite(&c_num,sizeof(int),1,fp);
fwrite(&r_num,sizeof(int),1,fp);
int r,c;
for(c=0;c<c_num;c++)
for(r=0;r<r_num;r++)
{ int c1,c2,c3,c4,c5;
c1=fwrite(&tile[r][c].type,sizeof(short),1,fp);
c2=fwrite(tile[r][c].WallHeight0,sizeof(float),4,fp);
c3=fwrite(&tile[r][c].h0,sizeof(float),1,fp);
c4=fwrite(&tile[r][c].h1,sizeof(float),1,fp);
c5=fwrite(tile[r][c].wallindex,sizeof(short),6,fp);
if(c1!=1||c2!=4||c3!=1||c4!=1||c5!=6)
{ Debugint(c);Debugint(r);Debugint(c5);}
//经检测,程序从来没有进到上面一行
}
fclose(fp);
}
else
{ printf( "Problem writing the file\n" );
//经检测,程序从来没有进到上面一行
}
}
void STAGE::LoadFromFile()
{ FILE *fp;
if((fp=fopen("MapEdit\\Test2.Map","r"))!=NULL)
{ fread(&c_num,sizeof(int),1,fp);//经检测读取正确
fread(&r_num,sizeof(int),1,fp);//经检测读取正确
int r,c;
for(c=0;c<c_num;c++)
for(r=0;r<r_num;r++)
{ fread(&tile[r][c].type,sizeof(short),1,fp);
fread(tile[r][c].WallHeight0,sizeof(float),4,fp);
fread(&tile[r][c].h0,sizeof(float),1,fp);
fread(&tile[r][c].h1,sizeof(float),1,fp);
fread(tile[r][c].wallindex,sizeof(short),6,fp);//返回值通常不等于6
//这一段读取的数据老是出错
}
fclose(fp);
}
else
{ printf( "Problem writing the file\n" );
//经检测,未进入
}
}
bestfyj 2003-10-21
  • 打赏
  • 举报
回复
刚刚看到你的贴子,你能否将问题具体一点,或者贴出你出问题的程序,fwrite or fread函数使用时文件指针都是移动的,但比较简单,你可以调试一下
祝你顺利
MPU 2003-10-21
  • 打赏
  • 举报
回复
看我的贴子

★★用 C 标准库写了个"文件分割"程序,可用但有些问题,帮忙看看改改!!!

http://expert.csdn.net/Expert/topic/2377/2377002.xml?temp=.6885034
thisisjjjj 2003-10-21
  • 打赏
  • 举报
回复
……
hardstudylulin 2003-10-21
  • 打赏
  • 举报
回复
文件打开属性没设好!
mfkzj 2003-10-21
  • 打赏
  • 举报
回复
^_^ 哈哈

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧