读书人

怎么将16进制的数据在txt文本文件中显

发布时间: 2012-03-02 14:40:28 作者: rapoo

如何将16进制的数据在txt文本文件中显示为16进制的数据?
void CCDDlg::OnSave()
{
// 实现存盘
CFile file;

LPBYTE m_pDisc_info22 = new BYTE[256];
memset(m_pDisc_info22,0,256);

m_pDisc_info22[0] = 0x44;
m_pDisc_info22[1] = 0x44;
m_pDisc_info22[6] = 0x44;
m_pDisc_info22[10] = 0x44;
m_pDisc_info22[15] = 0x44;
m_pDisc_info22[32] = 0x44;
m_pDisc_info22[40] = 0x44;

file.Open( "filename.txt ",CFile::modeCreate | CFile::modeWrite);
file.Write(m_pDisc_info22,256); //数据写入文件
file.Close();

}
本程序在vc6.0下运行,在工程目录下新建一个filename的txt文件.
程序运行后在文件filenama.txt中 生成如下一行D的显示字符:
DD D D D D D

本人希望在filename文件中得到十六进制的数据如图所表示:
44 44 00 00 00 00 44 00 00 00 44 00 00 00 00 44
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
44 00 00 00 00 00 00 00 44 00 00 00 00 00 00 00

如何修改本程序呢? 请各位高手帮助.




[解决办法]
void CCDDlg::OnSave()
{
// 实现存盘
FILE *fp = fopen( "filename.txt ", "w ");

if( !fp ) return;

BYTE m_pDisc_info22[256];
memset(m_pDisc_info22,0,sizeof(m_pDisc_info22));

m_pDisc_info22[0] = 0x44;
m_pDisc_info22[1] = 0x44;
m_pDisc_info22[6] = 0x44;
m_pDisc_info22[10] = 0x44;
m_pDisc_info22[15] = 0x44;
m_pDisc_info22[32] = 0x44;
m_pDisc_info22[40] = 0x44;

for(int i=0; i <256; i++)
{
fprintf(fp, "%02x ", m_pDisc_info22[i]);
if((i+1)%16 == 0) fprintf( "\n ");
}
fclose(fp);
}

不好意思,这个是正确版本
[解决办法]
替换for循环的代码就行了,见下
for(int i=0; i <256; i++)
{
fprintf(fp, "%02x ", m_pDisc_info22[i]);
if((i+1)%16 == 0) fprintf(fp, "\n ");
}

读书人网 >VC/MFC

热点推荐