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

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

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 相关产品和应用

全部下载

专题列表