C++基础:scanf/printf 与 getchar/putchar 输入输出用法

Chloe
Chloe
发布时间:2026-10-13| 5人浏览过
原创

在C++开发中,除了标准的流式输入输出(cin/cout),保留的C语言风格函数如 scanf、printf、getchar 和 putchar 依然广泛使用。它们提供了基于格式的批量数据处理以及灵活的单字符交互能力,是理解程序底层数据读取逻辑的重要基础。

批量格式化输入输出 (scanf / printf)

scanf 用于从标准输入按指定格式读取数据,printf 用于将数据按指定格式输出到终端。这两个函数的核心在于“格式控制字符串”与“变量地址/值”的对应关系。

第1步:配置输入与输出的格式模板

目的:定义数据在内存中的类型以及如何展示。
入口:源代码中的 #include <iostream>(或兼容的 <stdio.h>)。
动作:

  • 使用 scanf("%d%c%f", &a, &c, &b); 接收整数、字符和浮点数。
    注意:指针参数前必须加地址符 &,因为 scanf 需要知道存储位置以修改变量值。
  • 使用 printf("a=%d,b=%f,c=%c\n", a, b, c); 打印结果。
    参数:%d (整型), %f (浮点型), %c (字符)。

第2步:执行并观察数据流转

目的:验证格式化匹配是否成功。
示例代码:

#include <iostream>
using namespace std;
int main()
{
 int a; 
 float b; 
 char c;
 // 输入样例: 12 A 67.98 (空格分隔)
 scanf("%d%c%f", &a, &c, &b); 
 printf("a=%d,b=%f,c=%c\n", a, b, c);
 return 0;
}

完成状态判断:

  • 控制台等待输入三个用空格隔开的值。
  • 输出显示为:`a=12,b=67.980004,c=A`。
  • 数据被正确映射到对应的变量类型中。

单字符交互式 I/O (getchar / putchar)

当不需要复杂的格式化,仅需逐个处理字符(如密码掩码、简易状态机)时,getchar 和 putchar 是更底层的工具。它们不涉及缓冲区格式化开销,直接操作 ASCII 码。

第3步:掌握 putchar 的多种输出形式

目的:学习如何通过字符变量、ASCII 码数值及转义序列输出生成文本。
动作:

  • putchar('A');:直接输出字符常量。
  • putchar(66);:输出 ASCII 码为 66 的字符(即 'B')。
  • putchar('\n');:输出换行符(ASCII 10)。
  • putchar('\101');:八进制形式的 ASCII 码输出 'A'。

第4步:实现 getcha 读取与 ASCII 运算

目的:演示如何将输入的字符作为数值进行运算后再输出。
关键逻辑:getchar() 返回的是字符的 ASCII 整数值,可直接参与加减法。

#include <iostream>
using namespace std;
int main()
{
 char c;
 c = getchar(); // 接收一个字符
 // 示例:大写转小写(差值为32)
 putchar(c + 32); 
 putchar('\n');
 return 0;
}

完成状态判断:

  • 用户输入一个大写字母(如 'A'),程序自动在下一行输出对应的小写字母 ('a')。
  • 若直接将 getchar() 的结果传给 cout,因未赋给 char 变量且无强制转换,通常需小心处理,建议显式赋值给变量以确保按预期显示。

注意事项与最佳实践

虽然 C++ 推荐使用 iostream 体系(cin/cout)以保证类型安全和易用性,但在以下场景,C 风格函数仍有价值:

  • 高性能要求:在某些对 I/O 吞吐量极其敏感的循环中,scanf/ printf 经过优化后可提供比 cin/ cout 稍快的速度(尤其是关闭同步后)。
  • 遗留代码维护:处理历史悠久的 C 混合项目时,保持接口一致性很重要。
  • 精细格式控制:对于复杂的报表输出,printf 的精度和宽度控制依然直观高效。
在使用 getchar 时,务必留意它会将回车键(Enter)也作为字符读入,因此在处理混合数字和字符输入时,需通过空 getchar 消耗掉换行符以避免逻辑错误。

以上就是C++中scanf、printf、getchar和putchar函数基本使用的详细内容,更多关于C++输入输出机制的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。