我想填充一列,使其宽度为8个字符,并使整数左对齐,最多一个前导零,如下所示:
[00 ]
[01 ]
[07 ]
[11 ]
[14 ]
我知道如何添加前导零(printf("%02d\n", integer)
)或填充(printf("%-8d\n", integer)
),但我不知道如何将两者结合起来.有没有一个简单的方法来实现这一点?
我想填充一列,使其宽度为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 ]
这似乎是你想要的.