gcc c语言中%5d%*.*f的含义是什么

a8jjtwal  于 2023-01-13  发布在  其他
关注(0)|答案(1)|浏览(346)
#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

zour9fqk

zour9fqk1#

  • %5d意味着打印一个最小字段宽度为5的int。如果该值不是5个字符宽,它将用空格填充。您可能无法判断,或者您没有在示例输出中粘贴空格。
  • %*.*f表示打印具有最小字段宽度和精度(.之后的数字)的float,该字段宽度和精度作为参数提供,由*表示。在这种情况下,字段宽度为val,精度为val-8

你的第二个代码示例只是用法不正确。你声称传递了一个int和一个float,但却传递了3个int和一个float。

相关问题