mfc读取txt文件中的十进制数据

//TODO:Addyourcontrolnotificationhandlercodehereint*m_pSrcData;CStringmsg,m_FileName,... // TODO: Add your control notification handler code here
int * m_pSrcData;
CString msg,m_FileName,m_FileTile,m_PathName;
int m_nCurDataNum;
CFile m_FileOpen;
CFileException fileException;
CFileDialog openFile(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT);
openFile.m_ofn.lpstrFilter="name(*.*)\0*.*\0All files(*.*)\0*.*\0\0";
if(openFile.DoModal()==IDOK)
{
m_FileName=openFile.GetFileName();
m_FileTile=openFile.GetFileName();
m_PathName=openFile.GetPathName();
}
if (!m_FileOpen.Open(m_PathName,CFile::modeRead))
{
TRACE( "Can't open file %s, error = %u\n",
m_PathName, fileException.m_cause );
}
int nDataTotalNum = m_FileOpen.GetLength();

if(1024>nDataTotalNum) //文件的数据量不足一屏
m_nCurDataNum = nDataTotalNum; //全部读出
else //文件的数据量大于一屏
m_nCurDataNum = 1024; //读出一屏

m_pSrcData = new int[m_nCurDataNum]; //设置缓存大小

m_FileOpen.Read(m_pSrcData,m_nCurDataNum);

m_FileOpen.Close();

int a;
for(int i=0;i<20;i++)
{
a=*(m_pSrcData+i);
}

找到一段如上所示的程序,数如图所示。文件读入之后在a=*(m_pSrcData+i);处设置断点查看a的值不是数据中的数值,a都是一些924857912这样大的数,求高手解决问题,本人小白
展开
 我来答
bhtzu
2014-10-25 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4189万
展开全部
目测了一下,数据应该读取后确实是很大的数。你实际应该是什么数值呢?

你这个应该是文本文件吧,文本文件实际不是按照4字节存储的int,而是一堆空格和数字的ASCII码。
用CFile读取这样的文本文件还是比较麻烦的,需要读取到一个BYTE*里面,然后根据空格和回车拆出来“87”这样的字符串,再每个通过atoi之类的函数转换为int类型。
追问
有没有简单点的别的办法?
追答
以文本方式存储的数字,没什么十分直接的读取办法,只能通过格式化方式读取,而格式化方式,要求有固定的分隔。
使用fscanf函数格式化读取,稍微省事儿一点,不过要看你文件的具体格式来分析。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式