可以用*修饰符代替字段宽度,但还是要用一个参数告诉函数字段宽度应该是多少。也就是说,如果转换说明是% *d,那么参数列表中应包含 *和d对应的值。这个技巧也可用于浮点值指定精度和字段宽度。
例如:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int width,precision;
int number = 256;
double weight = 242.5;
printf("输入一个width值\n");
scanf("%d",&width);
printf("The number is :%*d:\n", width, number);
printf("输入一个宽度与精度\n");
scanf("%d%d",&width, &precision);
printf("Weight = %*.*f\n", width, precision, weight);
printf("Done");
return 0;
}
输入一个width值
6
The number is : 256:
输入一个宽度与精度
8 3
Weight = 242.500
Done
Process returned 0 (0x0) execution time : 6.668 s
Press any key to continue.