C言語でファイルを16進数ダンプする関数を書く
以下のようなフォーマットになってほしい
code:format.txt
\t\t | 0 1 2 3 4 5 6 7 8 9 A B C D E F |
0x0000000\t| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ........ ........ | 良さそうt6o_o6t.icon
https://scrapbox.io/files/65113c768150f7001bbe6247.png
文字列の出力はしなかった
問題点
/icons/hr.icon
以前に書いたメモ(使わなかった)t6o_o6t.icon
code:main.c
char* int2hex(unsigned int integer, size_t length) {
}
/* 与えられた1バイトの値を、2桁の16進数文字列にする */
char* byte2hex(char* output, unsigned char byte, size_t length) {
char* digitChars = "0123456789ABCDEF";
unsigned char q = byte, r;
int i;
hexstr = calloc(length, sizeof(char));
if (hexstr == NULL) return NULL;
for (i = 0; i < length; i++) {
r = q % base;
q /= base;
}
return output;
}
char* dumphexline(int headAddress, const unsigned char* base, size_t count) {
unsigned char* iter;
char* buf;
if (headAddress % sizeof(unsigned char) != 0) {
/* そんなことがあるのか? */
headAddress -= headAddress % sizeof(unsigned char);
}
iter = (unsigned char *)headAddress;
for (; iter < base + sizeof(unsigned char) * count; iter++) {
byte2hex(*iter, 2);
}
/* 注意:書きかけ */
}
int main() {
printf("\t\t| 0 1 2 3 4 5 6 7 8 9 A B C D E F |\n");
}