我目前正在学习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/

10-11 23:18
查看更多