C语言详解格式控制符scanf与printf的输入输出

Oliver
Oliver
发布时间:2026-10-15| 4人浏览过
原创

C语言中的scanf和printf函数是进行标准输入输出的核心工具。scanf用于从键盘获取数据并存储到变量,而printf用于将数据显示在屏幕上。掌握其格式控制符(如%d、%f、%lf、%s)是基础,而熟练运用printf的对齐、补零、精度控制(如%5d、%05d、%.2f)则能让程序输出更规范、专业。

使用scanf输入和printf输出

scanf 和 printf 是 C 语言中最常用的标准库函数,分别用于数据的读取和格式化输出。正确使用它们的前提是理解“格式控制字符串”如何映射到具体的内存地址或变量值。

第1步:掌握 scanf 的基本语法

scanf 的核心在于向变量内存地址写入数据。

scanf("格式控制", 变量地址); // 例如读取一个整数 
scanf("%d", &n); 

为了准确接收不同长度的数据,必须选择正确的格式符:

数据类型 scanf 格式符
int (整型) %d
long long (长整型) %lld
float (单精度浮点) %f
double (双精度浮点) %lf
char (字符) %c
char* (字符串) %s

注意:scanf 对数字类型(除 %c 外)以空白符(空格、Tab)为结束标志,字符串 (%s) 则以空格或换行作为结束标志。如果您需要接收带分隔符的数据,可以将其直接写在格式串中。例如,输入时间 "13:45:20" 时:

scanf("%d:%d:%d", &h, &m, &s); 

第2步:掌握 printf 的输出逻辑

printf 则是将变量名称代表的值转换为指定格式的字符串输出。

printf("格式控制", 变量名称); 

与 scanf 不同的地方在于浮点数:printf 读取 double 类型时直接使用 %f,而无需像 scanf 那样写成 %lf。此外,如果希望在屏幕上打印出百分号 %,需要使用两个连续的空格:%%。

利用格式控制符优化输出表现

为了让控制台输出更加整齐或符合特定业务规范,我们可以使用 printf 的宽度修饰符和精度控制符。

1、%md:宽度不足时右对齐补齐

%md 表示输出宽度至少为 m 位。如果变量的位数小于 m,则在前面用空格补齐;如果超过 m 位,则保持原样输出(不截断)。

#include<iostream>
using namespace std;
int main() {
    int a = 123, b = 123456;
    printf("%5d\n", a);   // a不足5位,左侧补空格
    printf("%5d\n", b);   // b等于5位,正常显示
    return 0;
}

输出效果如下:

  123
123456

2、%0md:用零填充宽度

如果在 % 和 m 之间加上 0(即 %0md),当宽度不足时,左侧会用 0 而不是空格来补齐。这在生成流水号或固定长度的标识符时非常有用。

#include<iostream>
using namespace std;
int main() {
    int a = 123;
    printf("%05d\n", a); // 不足5位时用0补全
    return 0;
}

上述代码将会输出:00123

3、%.mf:精准控制浮点数小数位

%.mf 可以让浮点数强制保留 m 位小数进行四舍五入输出。

#include<iostream>
using namespace std;
int main() {
    double d = 3.14159;
    printf("%.0f\n", d); // 不保留小数
    printf("%.1f\n", d); // 保留1位小数
    printf("%.2f\n", d); // 保留2位小数
    return 0;
}

对应的执行结果为:

3
3.1
3.14

单个字符的快速读写

除了批量处理数据,C 语言还提供了 getchar() 和 putchar() 专门用于处理字符流。它们最明显的特性是能识别换行符及其他不可见空白字符。

char c1, c2;
c1 = getchar(); // 接收第一个字符
c2 = getchar(); // 接收第二个字符
putchar(c1);
putchar(c2); 

该功能在实现简单的终端交互、跳过特定符号或处理非结构化文本时十分灵活。

以上就是C语言详解格式控制符scanf与printf的输入输出的详细内容,更多关于C语言scanf与printf的资料请关注本站其它相关文章!

相关标签:

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

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 算法库。