显示带前导零的十六进制整数

Display an int number in hexadecimal with leading zeros

我用 fscanf(file_input, "%X", &data);

读取了像 ABCD 这样的整数数据

这里没有问题,如果我的号刚好有4组!= 0

例如,如果读取 0002 它只显示我 2,或者对于 00AB 它给我 AB

printf("%X", data);

表示

即使它们是零,是否也可以打印正好 4 个组?

我尝试了 printf("%4X", &data);,但结果向右移动了 4 个空格。

你能帮帮我吗?

按照我猜您的需要,以从零开始的 4 组显示。 使用这个:

printf("%04x",data);

printf() 和朋友中,%X 等字段说明符可以采用width 参数。对于 4 的字段宽度,这将是

printf("%4X", data);

左边用空格填充。如果你想让它在右边填充它会是

printf("%-4X", data);

要补零,这样做

printf("%04X", data);