所以我有一个填充十六进制值的内存块,我想读取这些十六进制值作为Ascii。不幸的是,我似乎无法弄清楚如何做到这一点。
char* charstring = malloc(sizeof(uint16_t));
uint8_t test = 0x65;
sprintf(charstring, "%x ", test);
fprintf(Output, "%s", charstring);
free(charstring);
这只给了我很多" 65"而不是" e"我在期待。 我知道这是一个简单的问题,但我真的点击了谷歌首页上的每个链接,无法解决我的问题!
答案 0 :(得分:5)
您获得65
,因为您使用%x
作为格式说明符,将其更改为%c
以获取字符值。
请注意,对于null终止符,您没有足够的charstring
空间。解决它。