正常读取二进制文件可以用fread,具体如下:
    FILE *pFile=fopen("F:\\SqlServer注释.zip","rb");
     char *pBuf;
     fseek(pFile,0,SEEK_END);  //定位到文件末尾
    int len=ftell(pFile);  //求文件长度
    pBuf=new char[len+1];
     rewind(pFile);  //重新定位指针到文件开始处
    fread(pBuf,0,len,pFile);
     fclose(pFile);
如果文件读写的长度大于65535字节,则使用CArchive类进行循环读取。
CFileSourceFile;//数据文件
CStringSourceData;//定义一临时变量保存一条记录
SourceFile.Open(.......);
CArchivear(&SourceFile,CArchive::load);
while(NULL!=ar.ReadString(SourceData))//循环读取文件,直到文件结束
{
     if(SourceData=="文件头部"||SourceData=="")
     continue;//跳过文件头部的提示信息  
     //分析并填充//
}
    int R;
  CStringR=SourceData.Left(SourceData.Find("1"));//截取1前面的字符串
  SourceData=SourceData.Righ(SourceData.GetLength()-SourceData.Find("1")-1);//将1以及前面的字符删除。
  重复上面分析过程,直到记录末尾。