c语言基础-printf()的打印结果

问题:printf("Is %2.2e the same as %2.2f?\n",1201.0,1201.0);打印的结果,想求一下过程

%e是科学计数法格式输出,%2.2f是2位小数输出
所以%2.2e输出是 1.20e+003,%2.2f输出是1201.00

img

  • 你看下这篇博客吧, 应该有用👉 :C语言中使用printf()打印漂亮的颜色字体
  • 你还可以看下c语言参考手册中的 c语言-printf()
  • 除此之外, 这篇博客: C基础——使用printf打印各种数据类型的方式(示例)中的 关于printf函数的进一步说明: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示,如:
    printf("%f%%", 1.0/3);
    输出0.333333%。
    
    • 对于单精度数,使用 %f 格式符输出时,仅前7位是有效数字,小数6位.
    • 对于双精度数,使用 %lf 格式符输出时,前16位是有效数字,小数6位.
    • 对于m.n的格式还可以用如下方法表示(例)
    #include<stdio.h>
    int main()
    {
        char ch[] = "hello world.";
        int m = 9;
        int n = 7;
    
        printf("%*.*s\n",m,n,ch);
    
        return 0;
    }
    
    

    在这里插入图片描述

    •   前边的 \* 定义的是总的宽度,后边的 \* 定义的是输出的个数。分别对应外面的参数m和n 。我想这种方法的好处是可以在语句之外对参数m和n赋值,从而控制输出格式。 
      

    • %n 可以将所输出字符串的长度值赋绐一个变量, 见下例:
    #include<stdio.h>
    int main()
    {
        char ch[] = "hello world.";
        int m = 9;
        int n = 7;
        int len = 0;
    
        printf("%*.*s is hello world\n%n",m,n,ch, &len);
    
        printf("printf len = [%d]\n", len);
        return 0;
    }
    
    

    在这里插入图片描述