这是什么字符串格式?
问题描述:
我遇到了这个代码:这是什么字符串格式?
unsigned char c = 0xA3;
printf("%2.2X\n",c);
但我不知道是什么的2.2
的目的是什么。当我比较这两个语句:
printf("%2.2X\n",c);
printf("%X\n",c);
我得到同样的输出,如:
A3
比2.2
代表什么? 谢谢。
答
printf("%A.BX\n", c);
A
是输出必须具有的最小字符数量。如果小于这个值,那么它会用剩余空格填充剩余的空格。示例:printf("%3.1X\n", 6); -> " 6"
B
是输出必须具有的最小位数。如果小于这个数字,它会用剩下的零填充到左边。例如:printf("%4.2X\n", 6); -> " 06"
X
表示输出将以十六进制表示,其中的字母为大写。示例:printf("%7.5X\n", 232) -> " 000E8"
[RTFM](http://pubs.opengroup.org/onlinepubs/009695399/functions/fprintf.html) –
我在投票结束这个问题,因为它是由R的普通答复, FM。 –
您是否尝试过使用其他值?例如'unsigned int'值更少,更多的文本数字。请注意,您传递的'unsigned char'会被提升为'unsigned int'。实验。 –