我认为这应该有用。
#include<stdio.h>
void main(void)
{
short i;
scanf("0x%hi",&i);
printf("0x%x\n",i);
printf("0%o\n",i);
printf("%d\n",i);
}
不知道为什么?任何答案,为什么这不起作用。我认为这应该自动转换为十六进制oct,至少它应该正确打印十进制
32768
0x26
046
38
是我获得的32768输入。
答案 0 :(得分:4)
short
可能是16位,在这种情况下32768
不合适。请尝试使用更大的类型。
答案 1 :(得分:0)
scanf("%hi",&i);
删除0x修复此问题。感谢大家的帮助。