#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
会导致输出不同?
Code containing %d%f code, which giving output as 100.0000
Code containing %d%*.*f code, which giving output as 10 56.40
1条答案
按热度按时间zour9fqk1#
%5d
意味着打印一个最小字段宽度为5的int
。如果该值不是5个字符宽,它将用空格填充。您可能无法判断,或者您没有在示例输出中粘贴空格。%*.*f
表示打印具有最小字段宽度和精度(.
之后的数字)的float
,该字段宽度和精度作为参数提供,由*
表示。在这种情况下,字段宽度为val
,精度为val-8
。你的第二个代码示例只是用法不正确。你声称传递了一个int和一个float,但却传递了3个int和一个float。