我有像
这样的char数组char* str = 0x058f;
如何将此值转换为int和uint16_t,并通过uint16_t类型正确打印此值?
这意味着我希望uint16_t结果也是058f:
uint16_t result = 0x058f;
答案 0 :(得分:1)
将此值转换为int和uint16_t,并通过uint16_t
正确打印此值
int main(void) {
char* str = "0x058f";
int i;
unsigned u;
if (sscanf(str, "%x", &u) != 1)
Handle_Failure();
i = (int) u;
uint16_t u16;
if (sscanf(str, "%" SCNx16, &u16) != 1)
Handle_Failure();
printf("i: 0x%04x i16: 0x%04" PRIx16 "\n", i, u16);
return 0;
}
i: 0x058f i16: 0x058f
答案 1 :(得分:1)
您可以使用strtol将字符串转换为整数值
true
我希望这会有所帮助。