putchar 是 C 语言标准库中的一个函数,它的核心作用是向标准输出设备(通常是屏幕)输出一个单一的字符。

(图片来源网络,侵删)
详细说明
函数原型
putchar 函数在头文件 <stdio.h> 中声明,其原型如下:
int putchar(int c);
参数
c:这是一个int类型的参数,代表你想要输出的字符。- 虽然参数类型是
int,但通常你传递给它的是一个char类型的字符或者一个字符的 ASCII 码值。 - 当你传入一个
char类型的变量时,它会自动被提升为int类型,这是 C 语言中的常见规则。
- 虽然参数类型是
返回值
- 成功时:
putchar会返回它刚刚输出的那个字符(作为int类型返回),这个返回值主要用于检查输出是否成功,例如在文件操作或流操作中。 - 失败时:如果输出失败(向一个已经关闭的文件流写入),
putchar会返回EOF(End Of File,通常定义为 -1)。
功能
putchar 的功能非常简单直接,就是将一个字符发送到标准输出流(stdout),你可以把它想象成 C 语言中最基础的“打印”工具,它只负责打印一个字符。
与 printf 的区别
很多初学者会混淆 putchar 和 printf,它们的主要区别在于:
| 特性 | putchar |
printf |
|---|---|---|
| 功能 | 只能输出一个字符。 | 可以输出各种类型的数据(整数、浮点数、字符串等),并支持格式化输出。 |
| 参数 | 接受一个参数(要输出的字符)。 | 接受一个格式化字符串和可变数量的参数。 |
| 使用场景 | 当你只需要输出一个字符时,使用 putchar 更简单、直接。 |
当需要格式化输出复杂信息时,必须使用 printf。 |
| 效率 | 通常比 printf 更轻量、效率更高,因为它没有格式解析的开销。 |
功能强大,但开销也相对较大。 |
简单比喻:

(图片来源网络,侵删)
putchar就像一支只能写一个字母的笔。printf就像一台功能强大的打印机,你可以设定字体、大小、颜色,并打印出包含文字、图片、表格的复杂文档。
使用示例
下面通过几个例子来演示 putchar 的用法。
示例 1:基本用法
输出单个字符 'A'。
#include <stdio.h>
int main() {
// 输出字符 'A'
putchar('A');
putchar('\n'); // 输出一个换行符,让光标移到下一行
return 0;
}
输出:
A
示例 2:输出变量中的字符
使用 char 变量来存储字符,然后输出。

(图片来源网络,侵删)
#include <stdio.h>
int main() {
char ch = 'X';
// 输出变量 ch 中的字符
putchar(ch);
putchar('\n');
return 0;
}
输出:
X
示例 3:利用 ASCII 码值输出
putchar 也可以接受一个整数值,只要这个值是某个字符的 ASCII 码。
#include <stdio.h>
int main() {
// '65' 是大写字母 'A' 的 ASCII 码
putchar(65);
putchar('\n');
// '97' 是小写字母 'a' 的 ASCII 码
putchar(97);
putchar('\n');
return 0;
}
输出:
A
a
示例 4:输出一个字符串(循环使用 putchar)
这是 putchar 一个非常重要的应用场景:当你不能用 printf 时(例如在一些极简的嵌入式环境或特定编程挑战中),你可以用循环和 putchar 来输出一个完整的字符串。
#include <stdio.h>
int main() {
char message[] = "Hello, C!";
// 遍历字符串中的每一个字符
for (int i = 0; message[i] != '\0'; i++) {
putchar(message[i]);
}
putchar('\n'); // 输出换行符
return 0;
}
输出:
Hello, C!
示例 5:检查返回值(虽然不常见,但很重要)
#include <stdio.h>
int main() {
int result = putchar('Z');
if (result == EOF) {
printf("输出失败!\n");
} else {
// 成功输出,result 的值就是 'Z' 的 ASCII 码 90
printf("成功输出字符,其 ASCII 码是: %d\n", result);
}
return 0;
}
输出:
Z
成功输出字符,其 ASCII 码是: 90
- 作用:向标准输出(屏幕)输出一个字符。
- 位置:需要包含头文件
<stdio.h>。 - 优点:简单、轻量、高效。
- 缺点:功能单一,无法格式化输出。
- 核心应用:
- 输出单个字符。
- 在无法使用
printf的环境中,通过循环实现字符串的输出。 - 作为学习 C 语言 I/O 操作的基础。
掌握 putchar 是理解 C 语言输入输出流的重要一步。
