printf函数中*修饰符的做用,如:%*d

在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

相关文章
相关标签/搜索