zlp1992 2014-04-13 12:51 采纳率: 33.3%
浏览 2257

C语言中的fread与fwrite问题

我自己自定义了一个结构体
typedef struct histgramData
{
CString picPath;//图片路径
CvHistogram value;//图片的直方图特征
}CHistogramData;
然后使用fwrite将其写入文件
FILE *fp;
if((fp=fopen("histogram.dat","a+b"))==NULL)//以追加方式打开二进制文件
{return false;}
CHistogramData hd;
hd.value=value;
hd.picPath=picPath;
fwrite(&hd,sizeof(hd),1,fp);
fclose(fp);
接着我用fread函数将其中的数据读出
FILE*fp;
CHistogramData histData;//用于保存从文件中读出的模板
CHistogram hist;//直方图对象
fp=fopen("histogram.dat","rb");
int count=0;
while(count<=9 && (fread(&histData,sizeof(histData),1,fp)!=0))//先一次性读取前十个模板数据
{
double similarity=hist.cmpHistogram(histData.value,*value);
CString temp;
temp.Format("%s%lf",histData.picPath,similarity);
MessageBox(temp);
count++;//计数器加1
}
问题是这样的,当我第一次写入一个CHistogramData数据时,能够正常读出来,但当我再次去读时,就出问题了,我怀疑是不是第一次读使用fread对原文件有影响;第二个问题是如果我第一次一次性写入多个CHistogramData数据时,读出数据就会失败,请问这是怎么回事?

  • 写回答

1条回答 默认 最新

  • shen_wei 2015-10-14 06:18
    关注

    fread 读完数据后,记得fseek移动文件指针。。

    评论

报告相同问题?

悬赏问题

  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败