• C++
  • printf / scanf 格式化输入输出

  • @ 2026-2-2 14:22:59


🌟 printf / scanf 格式化输入输出

🎯(%d / %f / 保留小数 / 宽度控制 / 输入输出格式)


⭐ 一、为什么要学 printf ?

虽然我们常用:

cout / cin

但是在考试、竞赛、洛谷中:

⭐ printf 更常用!

因为:

✅ 输出格式更精确
✅ 能控制小数位
✅ 能控制宽度
✅ 写法更简洁



⭐ 二、printf 基本用法


⭐ 语法

printf("格式", 变量);

⭐ 示例

int a = 5;
printf("%d", a);

输出:

5


🌟 三、常用格式符大全(🔥 必背表格)


格式符 类型 示例
%d int 整数 10
%f double 小数 3.14
%c 字符 A
%s 字符串 hello
%lf double输入用 scanf专用
%% 输出% %


⭐ 四、整数输出(%d)


示例

int a = 100;
printf("%d", a);

多变量

printf("%d %d", a, b);


⭐ 五、小数输出(%f)⭐⭐⭐重点


默认6位小数

double x = 3.14;
printf("%f", x);

输出:

3.140000


⭐ 六、保留小数方法(超级重点🔥)


⭐ 保留2位小数

printf("%.2f", x);

⭐ 保留3位小数

printf("%.3f", x);

⭐ 通用模板(必须背)

%.nf

👉 n 表示小数位数


🎯 例题

double pi = 3.1415926;

printf("%.2f", pi);   // 3.14
printf("%.4f", pi);   // 3.1416


⭐ 七、宽度控制(对齐输出)


⭐ 占5格宽度

printf("%5d", a);

不足补空格:

   10

⭐ 前面补0

printf("%05d", a);

输出:

00010

⭐ 小数宽度

printf("%8.2f", x);

表示:

总宽度8,小数2位


⭐ 八、字符输出(%c)


char c = 'A';
printf("%c", c);


⭐ 九、字符串输出(%s)


string s = "hello";

printf("%s", s.c_str());

⚠ 注意:

string 必须加:

.c_str()


🌟 十、scanf 输入(一级常考)


⭐ 整数输入

int a;
scanf("%d", &a);

⭐ 小数输入

double x;
scanf("%lf", &x);

⭐ 多变量输入

scanf("%d%d", &a, &b);

⚠ 注意

必须加 & 取地址符!!!



🌟 十一、printf vs cout 对比(考试常问)


功能 cout printf
简单输出 ⭐⭐⭐⭐⭐ ⭐⭐⭐
格式控制 ⭐⭐ ⭐⭐⭐⭐⭐
保留小数 setprecision %.2f(更简单)
竞赛常用 一般 ⭐⭐⭐⭐⭐

🎯 建议:

👉 日常练习:cout
👉 考试/竞赛:printf



🌟 十二、一级常用模板速记(直接背)


⭐ 输出整数

printf("%d", a);

⭐ 保留2位小数

printf("%.2f", x);

⭐ 输出字符

printf("%c", c);

⭐ 输出字符串

printf("%s", s.c_str());

⭐ 输入整数

scanf("%d", &a);

⭐ 输入小数

scanf("%lf", &x);

🎯 记忆口诀

整数 %d
小数 %f
字符 %c
字符串 %s
保留小数 %.2f
输入记得加 &

2 条评论

  • @ 2026-3-7 15:54:34

    d", a); 多变量 printf("%d %d", a, b); ⭐ 五、小数输出(%f)⭐⭐⭐重点 默认6位小数 double x = 3.14; printf("%f", x); 输出:

    3.140000 ⭐ 六、保留小数方法(超级重点🔥) ⭐ 保留2位小数 printf("%.2f", x); ⭐ 保留3位小数 printf("%.3f", x); ⭐ 通用模板(必须背) %.nf 👉 n 表示小数位数

    🎯 例题 double pi = 3.1415926;

    printf("%.2f", pi); // 3.14 printf("%.4f", pi); // 3.1416 ⭐ 七、宽度控制(对齐输出) ⭐ 占5格宽度 printf("%5d", a); 不足补空格:

    10 ⭐ 前面补0 printf("%05d", a); 输出:

    00010 ⭐ 小数宽度 printf("%8.2f", x); 表示:

    总宽度8,小数2位 ⭐ 八、字符输出(%c) char c = 'A'; printf("%c", c); ⭐ 九、字符串输出(%s) string s = "hello";

    printf("%s", s.c_str()); ⚠ 注意:

    string 必须加:

    .c_str() 🌟 十、scanf 输入(一级常考) ⭐ 整数输入 int a; scanf("%d", &a); ⭐ 小数输入 double x; scanf("%lf", &x); ⭐ 多变量输入 scanf("%d%d", &a, &b); ⚠ 注意 必须加 & 取地址符!!! 🌟 十一、printf vs cout 对比(考试常问) 功能 cout printf 简单输出 ⭐⭐⭐⭐⭐ ⭐⭐⭐ 格式控制 ⭐⭐ ⭐⭐⭐⭐⭐ 保留小数 setprecision %.2f(更简单) 竞赛常用 一般 ⭐⭐⭐⭐⭐ 🎯 建议: 👉 日常练习:cout 👉 考试/竞赛:printf

    🌟 十二、一级常用模板速记(直接背) ⭐ 输出整数 printf("%d", a); ⭐ 保留2位小数 printf("%.2f", x); ⭐ 输出字符 printf("%c", c); ⭐ 输出字符串 printf("%s", s.c_str()); ⭐ 输入整数 scanf("%d", &a); ⭐ 输入小数 scanf("%lf", &x); 🎯 记忆口诀 整数 %d 小数 %f 字符 %c 字符串 %s 保留小数 %.2f 输入记得加 & 已修改 8 次查看 收藏讨论 举报
    1 条评论

    发表您的评论

    洛涵 (luohan) LV 7 @ 1 个月前 金咕咕语法与

    1

    代 (shujin)

    141 已通过 0 题解被赞 Language 兼容模式 主题 Worker 0, 17msPo

    • @ 2026-2-2 22:20:47

      金咕咕语法与

      • 1