我目前正在学习libc的printf
函数,但我不明白,两者之间有什么区别:
printf("Test : %010d", 10);
使用
0
标志和10
作为宽度说明符和
printf("Test : %.10d", 10);
使用
10
作为精度说明符产生相同的输出:
Test : 0000000010
最佳答案
我们将从the docs for printf()开始,然后我将突出显示它们的相关位。
前0个填充。
然后精确。
%010d
表示将零填充到最小10位数字的宽度。没问题。%.10d"
,因为您使用的是%d
,所以显示的最小位数为10。因此,与零填充相同。 %.10f
的行为将更像您预期的那样。
我建议您使用%010d
零填充。 %.10d
格式是一个令人惊讶的功能,可能会使读者感到困惑。我对此一无所知,但感到惊讶的是它并没有被简单地忽略。
关于C printf 0标志和width属性与precision标志之间的差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40558685/