基于MFC对话框关于16进制数据读取问题

图片说明我文件里的数据是这样的,读取数据的时候怎样才能79,75这样读取,而不是一个个字符读取7 9 7 5这样

5个回答

这是什么界面?是记事本还是什么?你文件里的数据是ascii存储的还是直接二进制存储的

如果是字符串,那么直接每次读取2个就是了。

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复lxz5200oo: 那就不是什么16进制文件,而是文本文件,按照文本文件读取就可以了。
4 年多之前 回复
lxz5200oo
lxz5200oo 这是一个txt的文本文件,里面存的是16进制的数据
4 年多之前 回复

你可以按行读取,然后按空格来截取,得到各个数据。

lxz5200oo
lxz5200oo 新手一个,能不能具体点
4 年多之前 回复

试试fscanf()函数。

a1193561652
纵横车 回复lxz5200oo: 这个函数和scanf差不多,只是是从文件输入。
4 年多之前 回复
lxz5200oo
lxz5200oo 新手,能否具体讲解下
4 年多之前 回复

这看上去像是一个文本文件,只是你用16进制编辑器来显示了它的内容。
你是想要读取文件内容,然后转换成以16进制表示形式并显示出来吗?如果是这样的话:
(1)用CFile::Open()打开文件
(2)用CFile::Read()方法读取文件到一缓存buf
(3)转换buf中的每个字节到字符串CString str; str.Format("%02X", buf[ii]);
(4)显示str内容。
(5)对buf[]的每个字节,循环以上(3)(4),直到处理完所有字节

每一行用fscanf格式化读出空格隔开的字符串如“79”,“75”即可。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问