部分程序如下:
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
我觉得我的程序应该没问题呀,请教高手,为什么输出的不是对应的十六进制的数?
10 个解决方案
#1
你这是指针数组,data[j]是指针地址,不是数据。
str.Format("%x",data[i][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;
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
以上几种方法我都试了,还是不行,输出的结果完全不对呀。。
#5
试试 str.Format(_T("%02X"), (UINT)data[i][j]);
#6
先atoi嘛
str.Format("%x",atoi(data[j]));
str.Format("%x",atoi(data[j]));
#7
printf( "%x", atoi( char ) );
#8
str.Format(_T("%x"),data[i][j]);
有什么问题?输出什么?
#9
应该是要atoi 先转的
#10
long ltemp;
for(i=0; i<300; i++)
{
ltemp = strtol(data[i],NULL,10);
str.Format("%x",ltemp );
}
for(i=0; i<300; i++)
{
ltemp = strtol(data[i],NULL,10);
str.Format("%x",ltemp );
}
#1
你这是指针数组,data[j]是指针地址,不是数据。
str.Format("%x",data[i][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;
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
以上几种方法我都试了,还是不行,输出的结果完全不对呀。。
#5
试试 str.Format(_T("%02X"), (UINT)data[i][j]);
#6
先atoi嘛
str.Format("%x",atoi(data[j]));
str.Format("%x",atoi(data[j]));
#7
printf( "%x", atoi( char ) );
#8
str.Format(_T("%x"),data[i][j]);
有什么问题?输出什么?
#9
应该是要atoi 先转的
#10
long ltemp;
for(i=0; i<300; i++)
{
ltemp = strtol(data[i],NULL,10);
str.Format("%x",ltemp );
}
for(i=0; i<300; i++)
{
ltemp = strtol(data[i],NULL,10);
str.Format("%x",ltemp );
}