在 printf 语句 C 的开头填充零

padding zeros at the beginning of a printf statement C

我需要给一些值加 0。

例如如果数字是14,我想打印出00014。

但我不能只使用 %05d,因为我想要的填充数存储在一个变量中。

如果变量等于6,我想打印000014。如果它等于3,我想打印014等等..

有什么快速的方法吗?

int length = 5;
int someValue = 14;
printf("%0%d%d",length,someValue);

这也不行。

谢谢。

你可以试试

 printf("%0*d",length,someValue);

其中字段宽度使用 * 标记,相应的值取自第一个参数。

您可以在格式中使用星号 * 来告诉 printf 从参数中获取字段宽度:

printf("%0*d", length, someValue);

您也可以使用它来提高精度。

参见例如this printf reference 了解详情。