#include <stdio.h>
int main()
{
int val =10;
float val1 = 56.40;
printf("%d%*.*f", val,val,val-8,val1);
}
输出为10 56.40
%5d%*.*f
的实际含义是什么
#include <stdio.h>
int main()
{
int val =10;
float val1 = 56.40;
printf("%d%f", val,val,val-8,val1);
}
输出为100.000000
为什么仅仅输出%d%f
就会得到不同的输出?
包含%d%f代码的代码,输出为100.0000
包含%d%*的代码。*f代码,输出为1056.40
-
%5d
表示打印int
,最小字段宽度为5。如果值不是5个字符宽,它将留下空格填充。在示例输出中,您要么无法判断,要么没有粘贴空格。 -
%*.*f
表示打印一个float
,其最小字段宽度和精度(.
后面的数字)作为参数提供,由*
表示。在本例中,字段宽度为val
,精度为val-8
。
您的第二个代码示例完全是错误的用法。你声称传递的是int和float,但实际上传递的是3 int和float。