printf是C语言标准库中的输出函数,定义在stdio.h头文件中,核心作用是将经过格式化的数据输出到标准输出流,默认情况下标准输出流对应终端屏幕,是程序向用户展示运行结果、输出调试信息最常用的工具之一。

printf的基本作用
printf的核心功能是格式化输出,它可以将不同类型的数据按照指定的格式转换为字符串,然后输出到标准输出设备。具体作用可以分为以下几类:
- 输出程序运行结果,比如计算得到的数值、处理后的字符串内容
- 输出调试信息,帮助开发者定位程序运行中的问题
- 按照指定格式拼接输出内容,比如控制数值的精度、输出的对齐方式等
printf的基本使用语法
printf的函数原型为:
#include <stdio.h> int printf(const char *format, ...);
其中format是格式控制字符串,后面的省略号表示可变参数,是需要输出的数据。函数执行成功后会返回输出的字符总数,执行失败则返回负数。
基础使用示例
下面是一个最简单的printf使用示例,输出一段固定的字符串:
#include <stdio.h>
int main() {
// 输出固定字符串,不需要额外参数
printf("Hello, C Language");
return 0;
}
格式控制规则
printf的强大之处在于格式控制字符串可以指定输出数据的格式,常见的格式说明符如下:
| 格式说明符 | 作用 |
|---|---|
| %d | 输出有符号十进制整数 |
| %f | 输出浮点数,默认保留6位小数 |
| %c | 输出单个字符 |
| %s | 输出字符串 |
| %x | 输出无符号十六进制整数,小写字母 |
| %p | 输出指针地址 |
带格式控制的示例
下面的示例展示了不同格式说明符的使用方式:
#include <stdio.h>
int main() {
int num = 100;
float score = 95.5;
char grade = 'A';
char name[] = "Tom";
// 使用不同格式说明符输出对应类型的数据
printf("学号:%dn", num);
printf("分数:%.1fn", score); // .1表示保留1位小数
printf("等级:%cn", grade);
printf("姓名:%sn", name);
return 0;
}
常见使用注意事项
- 使用printf前必须包含<stdio.h>头文件,否则会导致编译警告或错误
- 格式说明符的数量和类型必须和后面的可变参数匹配,否则会出现未定义行为,比如输出错误数据
- 如果需要输出百分号本身,需要使用两个百分号转义,即
%% - 可以在格式说明符中添加宽度控制,比如
%5d表示输出整数至少占5个字符宽度,不足则左侧补空格
下面是一个转义百分号的示例:
#include <stdio.h>
int main() {
// 输出百分号需要转义
printf("通过率:95%%n");
return 0;
}