#include <stdio.h>
int main(void)
{
int mins = 10;
int formu = 6 * mins;
printf("Input: %x\n", mins);
printf("Result: %x\n", formu);
}
结果如下:
Input: a
Result: 3c
我认为由于某种原因,一种类型的类型(如果不是两种类型)会生成为“ Double”,而放入“ Int”会引起冲突。当我将“%x”中的任何一个更改为“ mins”或“ formu”我得到以下错误:
error: data argument not used by format string [-Werror,-Wformat-extra-args]
printf("Input: %mins\n", mins);
~~~~~~~~~~~~~~~~ ^
为什么编译器假设我要加倍?
这就是为什么大于10的数字会导致字母转换的原因吗?
谢谢
最佳答案
您要printf()
将数字表示为hexadecimal。
尝试使用%d
或%i
代替%x
。这会将它们显示为十进制数字。