例子在《C Primer Plus》书上有:
#include <stdio.h>
#define PAGES 957
int main()
{
printf("*%d*\n", PAGES);
printf("*% d*\n", PAGES);
printf("*% d*\n", -PAGES);
printf("*%2d*\n", PAGES);
printf("*%10d*\n", PAGES);
printf("*%010d*\n", PAGES);
printf("*%-10d*\n", PAGES);
return 0;
}
输出结果:
*957*
* 957*
*-957*
*957*
* 957*
*0000000957*
*957 *
%d 不带任何修饰符,正常输出;
% d 正值右前导空格, 负值不产生前导空格;
%2d 对应输出结果为2字段宽度,待打印整数为3位数字,字段宽度会自动扩大以符合整数的长度;
%10d 对应输出10个字段宽度,所以**之间,有3个数字,7个位由空格填充,数字右对齐;
%010d 对应输出10个字段宽度,所以**之间,有3个数字,7个位由0填充,数字右对齐;
%-10d 对应输出10个字段宽度,所以**之间,有3个数字,7个空格,数字左对齐。