我想填充一列,使其宽度为 8 个字符,并使整数左对齐,最多有一个前导零,如下所示:
[00 ]
[01 ]
[07 ]
[11 ]
[14 ]
我知道如何添加前导零 (printf("%02d\n", integer)
) 或填充 (printf("%-8d\n", integer)
),但我不知道如何将两者结合起来。有没有一种简单的方法可以实现这一目标?
最佳答案
指定最小字段宽度 (8
) 和精度 (.2
) 和左对齐 (-
) — 参见 fprintf()
—像这样:
#include <stdio.h>
int main(void)
{
int array[] = { 0, 1, 7, 11, 14, 314159 };
enum { NUM_ARRAY = sizeof(array) / sizeof(array[0]) };
for (int i = 0; i < NUM_ARRAY; i++)
printf("[%-8.2d]\n", array[i]);
return 0;
}
输出(在 macOS 12.3 上):
[00 ]
[01 ]
[07 ]
[11 ]
[14 ]
[314159 ]
这似乎是你想要的。
关于c - printf() - 如何添加前导零 + 填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71546836/