- 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 条评论
-
zhilin LV 2 @ 2026-3-7 15:54:34d", 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