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

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

2012-03-02 
如何将16进制的数据在txt文本文件中显示为16进制的数据?voidCCDDlg::OnSave(){//实现存盘CFilefileLPBYTE

如何将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 ");
}

热点排行