怎样将char型的十进制数据转换成十六进制的数据?
部分程序如下:
CString str;
char data[300][20];
str.Format("%x",data[j]); //转换成十六进制
m_list.SetItemText(i, k, str); 数组data是读文件读取的数据,data里面的数据如下:10,98,102,104。
但是输出的在控件上显示的却是:124d754,124d758,124d77c,124d790
我觉得我的程序应该没问题呀,请教高手,为什么输出的不是对应的十六进制的数?

解决方案 »

  1.   

    你这是指针数组,data[j]是指针地址,不是数据。str.Format("%x",data[i][j]);
      

  2.   

    先把data数组转换为整数,再用str.Format
      

  3.   

    我写的代码:
    CString str = "";
    CString strAll = "";
    char data[300][20];
    for (int i = 0; i < 300; i++)
    {
         for (int j = 0; j < 20; j++ )
         { 
              str.Format("%02x ",data[i][j]); //转换成十六进制
               strAll += str;
          }
    }
    m_edit = strAll;  
      

  4.   

    试试 str.Format(_T("%02X"), (UINT)data[i][j]); 
      

  5.   

    先atoi嘛
    str.Format("%x",atoi(data[j]));
      

  6.   

    printf( "%x", atoi( char ) );
      

  7.   


    str.Format(_T("%x"),data[i][j]);
    有什么问题?输出什么?
      

  8.   

    long ltemp;
    for(i=0; i<300; i++)
    {
      ltemp = strtol(data[i],NULL,10);
      str.Format("%x",ltemp );
    }