16 進数で埋められる配列 (readingreg[4]) があります。私の目標は、データ型を文字列に変換することです。いくつかの提案を読みましたが、sprintf が適しているようです。
これは私が試したものです:
sprintf(server0, "0x%02X", readingreg[0]);
printf("This is element 0: %s\n", server0);
sprintf(server1, "0x%02X", readingreg[1]);
printf("This is element 1: %s\n", server1);
sprintf(server2, "0x%02X", readingreg[2]);
printf("This is element 2: %s\n", server2);
sprintf(server3, "0x%02X", readingreg[3]);
printf("This is element 3: %s\n", server3);
printf("This is element 0: %s\n", server0);
printf("This is element 1: %s\n", server1);
printf("This is element 2: %s\n", server2);
printf("This is element 3: %s\n", server3);
ここに私の出力があります:
This is element 0: 0x4A
This is element 1: 0xAA
This is element 2: 0xAA
This is element 3: 0xA0
This is element 0: 0
This is element 1: A0
This is element 2: xA0
This is element 3: 0xA0
この時点で、私は sprintf が何をしてくれたかについてかなり混乱しています。私の予想される出力は、server0 - server4 がすべて文字列値を保持することです。なぜこれが起こっているのか、何か考えはありますか?
以下は、プログラムの簡略化されたバージョンです。
readingreg[0] = 4A;
readingreg[1] = AA;
readingreg[2] = AA;
readingreg[3] = A0;
char server0[1];
char server1[1];
char server2[1];
char server3[1];
完全なプログラムは 1000 行を超えるコードなので、コンパイルして実行するには、私が提供したもので十分なはずです。