我正在尝试打印数组的十六进制值,但出现错误。
我试过的代码:
char Routing[29];
memset(&Routing,0x00,29);
chdir("\\WWW");
tp = fopen("routing.csv", "a");
if(tp!=NULL){
if (SlaveNodeID != 0x00){
fseek(tp, (98 * SlaveNodeID), SEEK_SET);
fprintf(tp, "\n %058x,",Routing);
}
输出得到:
00000000000000000000000000000000000000000000000000a001ff30
但我需要输出
0000000000000000000000000000000000000000000000000000000000
我不知道为什么我得到这个 a001ff30
值..
您需要打印出您读取的数组的每个字节
所以而不是
fprintf(tp, "\n %058x,",Routing);
做
fprintf( tp, "\n " );
for (i = 0; i < sizeof(Routing); ++i)
{
fprintf( tp, "02x", Routing[i] );
}
我是一名优秀的程序员,十分优秀!