在printf函数中,咱们能够用数字修饰来控制打印的字段宽度和精度,以下(为强调视觉效果,均填充0):函数
#include <stdio.h> int main() { int i=1; float f=2.4; printf("%04d\n",i); printf("%06.2f",f); return 0; }
运行以下:spa
0001 002.40
咱们用*修饰也能够达到这样的效果,以下:code
#include <stdio.h> int main() { int i=1; float f=2.4; printf("%0*d\n",4,i); printf("%0*.*f",6,2,f); return 0; }
运行后与上面一致。简单来讲,*修饰符经过按顺序读取printf函数中的参数,等效替换成数字后控制打印。blog
如此,咱们就能够声明一个变量,运行时让用户赋值,经过*修饰符让变量控制打印,交互感更强,以下:ci
#include <stdio.h> int main() { float f=2.4; int width,precision; printf("请输入打印字段宽度与精度:"); scanf("%d%d",&width,&precision); printf("%0*.*f",width,precision,f); return 0; }
运行时就能够自定义打印宽度与精度:io
请输入打印字段宽度与精度:8 4 002.4000
注意:*能够接受的参数尽可能为无符号整型,与数字修饰时保持一致,如其余类型,可能会发生转换,也可能发生错误。class