所以我有一个内存块,里面填充了十六进制值,我想把这些十六进制值读成Ascii。不幸的是,我似乎不知道怎么做。

char* charstring = malloc(sizeof(uint16_t));
uint8_t test = 0x65;
sprintf(charstring, "%x ", test);
fprintf(Output, "%s", charstring);
free(charstring);

这只是给了我一吨“65”,而不是我期待的“e”。
我知道这是一个简单的问题,但我确实点击了谷歌首页上的每一个链接,无法找出我的问题!

最佳答案

因为使用65作为格式说明符,所以会得到%x,将其更改为%c作为字符值。
注意,您没有足够的空间用于charstring的空终止符。修理它。

关于c - 将十六进制转换为Ascii内存访问,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29504169/

10-10 20:44