C中的格式说明符不清楚

时间:2013-12-16 06:14:05

标签: c

#include <stdio.h>

int main() {
    int a = 3;
    float b = 6.412355;
    printf("%.*f\n",a,b);
    return 0;
}

为什么输出;

6.412

。*这里有什么影响?

3 个答案:

答案 0 :(得分:2)

.表示下一个字符表示要使用的精度。 *表示从参数列表中读取值;在您的情况下,它将显示a。值为3,因此下一个参数将打印到3个小数位。

答案 1 :(得分:2)

printf函数中,此问题的格式%[flags][width][.precision][length]specifier.precision,它有两个选项编号或*

*时,表示未在格式字符串中指定精度,而是作为必须格式化的参数之前的附加整数值参数。

有关详细信息,请参阅http://www.cplusplus.com/reference/cstdio/printf/

答案 2 :(得分:1)

#include <stdio.h>

int  main() {
int a = 3;
float b = 6.412355;
printf("%.*f\n",a,b);
return 0;
}

它将a的值替换为*,意味着精确度。

相关问题