C 语言 - printf 解析

printf 是什么

  • 它的全名是 “print formatted”,意思是格式化输出,也就是把内容按指定的格式打印到程序运行时的控制台窗口上

简单的例子

printf("你好,世界!");
  • 运行后程序运行时的控制台窗口会输出:

    你好,世界!
    

打印变量

int age = 18;
printf("我今年%d岁", age);
//"我今年%d岁" 是格式字符串
//%d 是一个“占位符”(告诉 printf 这里要放一个整数)
//age 是要放进去的值

多个值一起输出

  • 举例

    int a = 3, b = 5;
    printf("a=%d, b=%d\n", a, b); // '\n' 表示换行,相当于“按一下回车”
    
    • 输出结果

      a=3, b=5
      

多参数

  • C 语言中,printf 允许多参数打印

    printf("格式字符串", 参数1, 参数2, 参数3, ...);
    //前面的引号里是“说明书”(格式)
    //后面的一堆参数是要“填进去的答案”
    
  • 举个例子

    int a = 5;
    float b = 3.14;
    char c = 'A';
    
    printf("a=%d, b=%.2f, c=%c\n", a, b, c); //"a=%d, b=%.2f, c=%c\n" 是格式字符串
    //%d → 整数 | %.2f → 小数点后保留2位的小数 | %c → 字符 | \n → 换行
    //a, b, c 是对应的变量,按顺序一一匹配:第1个 %d → a、第2个 %.2f → b、第3个 %c → c
    
    • 输出结果

      a=5, b=3.14, c=A
      
  • 注意事项顺序很重要!格式符和参数必须一一对应顺序不能乱

    • 错误例子

      printf("%d %d", x); //这里只有一个参数,格式却要两个 → 会出错或输出乱七八糟的值
      
    • 正确例子

      int year = 2025;
      int month = 10;
      int day = 11;
      printf("今天是%d年%d月%d日\n", year, month, day);
      
      • 输出结果

        今天是2025年10月11日
        

格式控制

  • 格式结构

    %[标志][最小长度][.精度][长度修饰符]类型 //可以理解为“打印说明书”,每个部分都有作用。不用必须叠加全部参数
    
    • % → 开始打印:每个格式说明符都必须以 % 开头,就像一个信号:“我要开始填东西了”

      printf("%d", 42); // %d 就是开始打印整数
      
    • [标志] → 打印的额外修饰

      标志 作用 示例
      - 左对齐(默认右对齐) %-5d
      + 正数加 + %+d
      0 不够长度左边补0 %05d
      # 八进制/十六进制加前缀 %#x
      printf("%+5d\n", 42);  // 输出: "  +42"
      printf("%05d\n", 42);  // 输出: "00042"
      
    • [最小长度] → 占几格:数字表示至少占几格,如果实际内容短,不够就补空格(或补0,前提是加了 0

      printf("%5d\n", 42);  // 输出: "   42"(前面补3个空格)
      printf("%05d\n", 42);  // 输出: "00042"(前面补3个0),加0只适用右对齐
      printf("%-5dend\n", 42); // 输出: "42   end"(左对齐)
      
    • [.精度] → 精确控制内容长度:对 浮点数 → 小数点后保留几位,对 字符串 → 最多输出几个字符

      printf("%.2f\n", 3.14159);    // 输出: 3.14
      printf("%.3s\n", "computer"); // 输出: com
      
    • [长度修饰符] → 指定数据类型长度(可选)llonglllong longhshort一般初学者可以先忽略,除非处理不同长度的整数

      long x = 1234567890;
      printf("%ld\n", x); // 打印 long 类型整数
      
  • 例子

    printf("%s , %5.3s\n", "computer", "computer");
    // 第一个 %s → 直接输出整个字符串
    // 第二个 %5.3s → 有“格式控制”的字符串输出:%[最小长度].[最大字符数]s
    
    • 最小长度(5):输出的最小长度(不够则补空格)>>> 总长度至少 5个位置,不够则在前面补空格

    • 最大字符数(.3):最多只输出前3个字符 >>> 只取前 3 个 → "com"

    • 输出结果

      computer ,   com
      

总结

  • printf 是用来把文字或变量按格式输出到程序运行时的控制台窗口的函数
  • printf 可以一次输出多个值,只要格式符和参数数量、顺序一一对应
  • printf 格式控制%[标志][最小宽度][.精度][长度修饰符]类型就是 告诉 printf 你要打印什么、占几格、保留几位小数、对齐方式和数据类型 的说明书
posted @ 2025-10-11 10:32  阿俊学编程  阅读(97)  评论(0)    收藏  举报