在printf函数中,我们可以用数字修饰来控制打印的字段宽度和精度,如下(为强调视觉效果,均填充0):
#include <stdio.h> int main() { int i=1; float f=2.4; printf("%04dn",i); printf("%06.2f",f); return 0; }
运行如下:
0001 002.40
我们用*修饰也可以达到这样的效果,如下:
#include <stdio.h> int main() { int i=1; float f=2.4; printf("%0*dn",4,i); printf("%0*.*f",6,2,f); return 0; }
运行后与上面一致。简单来说,*修饰符通过按顺序读取printf函数中的参数,等效替换成数字后控制打印。
如此,我们就可以声明一个变量,运行时让用户赋值,通过*修饰符让变量控制打印,交互感更强,如下:
#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; }
运行时就可以自定义打印宽度与精度:
请输入打印字段宽度与精度:8 4 002.4000
注意:*可以接受的参数尽量为无符号整型,与数字修饰时保持一致,如其他类型,可能会发生转换,也可能发生错误。
内容来源于网络如有侵权请私信删除
文章来源: 博客园
- 还没有人评论,欢迎说说您的想法!