格式说明符内的格式说明符,用于更改前导零的大小

format specifier inside format specifier to change size of leading zeros

我想解决下面描述的问题,然后我以一个问题结束,但我在 Google 上找不到答案。

问题:是否可以在 printf() 的另一个格式说明符中使用格式说明符?

问题在于以下代码行中 printf() 中前导零的大小:

uint16_t num=5;
printf("%02d",num);

是否可以为“2”使用格式说明符? 我如何根据不同的条件调整程序中前导零的大小(所以它会像 %02d、%03d、%04d,...)?除了定义不同的类别和不同的 printf() 行之外,这里是否可以使用技巧?除了 printf() 之外,还有其他函数可以解决这个问题吗?

是的,这是可能的。请参阅 printf* 宽度说明符。示例:

printf("%0*d\n", 5, 2);

... 打印:

00002