伪衙门
2015-11-06 02:13
采纳率: 38.5%
浏览 1.7k

C++ 文件 指针操作问题

我以二进制方式读一个文件,先遍历整个文件求校验和,然后我要重新回到文件开头再来
读取文件数据,也就是将文件指针置于文件头,可是运行时不是这样。
ifstream filein(strFileDir, ios::in | ios::binary);

//校验和
int iVerify = 0;
while (!filein.eof())
{
    char cByte = NULL;
    filein.read(&cByte, sizeof(char));

    iVerify+=(int)cByte;
}
iVerify = (iVerify ^ 0xffffffff) + 1;


//读取文件
char szBuff[FILE_DATA_LEN];
filein.seekg(0,ios::beg);               //置文件指针到文件头
ios::pos_type iTemp = filein.tellg();
ios::pos_type iPos = filein.beg;
int iNum = 0;                       //帧序号
while (!filein.eof())
{
    memset(szBuff, 0, sizeof szBuff);

    filein.read(szBuff, sizeof szBuff);
    int iLen = filein.tellg() - iPos;
    iPos = filein.tellg();

    if (YZNETSDK1203::YZ_SysUpdate1203(g_lLoginID, szBuff, iLen, iNum, iVersion,iVerify) != 0)
    {
        AfxMessageBox(TEXT("系统升级失败"));
        break;
    }

    iNum++;
}

求指导
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • wunaidepao 2015-11-06 08:18

    不是很清楚,filein.tellg()这不错了没有?

    点赞 打赏 评论

相关推荐 更多相似问题