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

怎么验证读取二进制文件数据的正确性

2012-03-22 
如何验证读取二进制文件数据的正确性?大家好,本人是菜鸟,有以下疑问,CStringszFileNamefileDlg.GetNextPa

如何验证读取二进制文件数据的正确性?
大家好,本人是菜鸟,有以下疑问,
CString   szFileName   =   fileDlg.GetNextPathName(pos);  
char   *pBuf;
CFile   file;
file.Open(szFileName,CFile::modeRead|CFile::typeBinary);
DWORD   dwFileLen;
dwFileLen=file.GetLength();
pBuf=new   char[dwFileLen+1];
pBuf[dwFileLen]=0;
file.Read(pBuf,dwFileLen);
int   temp   =   atoi(pBuf);
file.Close();
CString   tempstring;
tempstring.Format( "%d ",temp);
MessageBox(pBuf);
MessageBox(tempstring);

1.二进制文件以文本方式打开是乱码,读取后用MessageBox显示的和文本是一样,也是乱码,可我要读取的是灰度值,应该是数字才对啊。
2.如何显示这些数字,为什么temp总是0,希望老手们帮忙啊

[解决办法]
int temp = atoi(pBuf);

-> >

memcpy(&temp, pBuf, 4)
[解决办法]
你是以二进制方式打开的文件,读取出来的是数值类型,而不是字符类型,所以用atoi是行不通的。
直接进行内存复制操作

热点排行