在C语言中,putchar
是一个标准库函数,用于向标准输出(通常是终端或控制台)输出单个字符。它定义在 <stdio.h>
头文件中,语法简洁高效,适用于需要逐字符输出的场景。
1. putchar
函数原型
int putchar(int char);
-
参数:
char
是要输出的字符,类型为int
(实际会被转换为unsigned char
)。 -
返回值:
-
成功时返回输出的字符(以
int
形式)。 -
失败时返回
EOF
(End Of File,值为-1
)。
-
2. 基础用法示例
示例1:输出单个字符
#include <stdio.h>
int main() {
putchar('A'); // 输出字符 'A'
putchar('\n'); // 输出换行符
return 0;
}
输出:
A
示例2:输出数字对应的ASCII字符
#include <stdio.h>
int main() {
putchar(65); // ASCII码 65 对应字符 'A'
putchar(10); // ASCII码 10 对应换行符(\n)
return 0;
}
输出:
A
3. 结合循环逐字符输出字符串
示例3:手动实现字符串输出
#include <stdio.h>
int main() {
const char *str = "Hello";
for (int i = 0; str[i] != '\0'; i++) {
putchar(str[i]); // 逐个输出字符
}
putchar('\n');
return 0;
}
输出:
Hello
4. 与 getchar
配合实现输入回显
示例4:读取输入并回显字符
#include <stdio.h>
int main() {
int c;
printf("输入字符(按回车结束):\n");
while ((c = getchar()) != '\n' && c != EOF) {
putchar(c); // 将输入的字符原样输出
}
putchar('\n');
return 0;
}
运行:
输入字符(按回车结束):
abc123
abc123
5. 处理特殊字符(如转义序列)
示例5:输出特殊格式文本
#include <stdio.h>
int main() {
putchar('\t'); // 输出制表符
putchar('*');
putchar('\n'); // 换行
putchar('\\'); // 输出反斜杠(需转义)
putchar('"'); // 输出双引号
return 0;
}
输出:
*
\"
6. 注意事项
-
参数类型:
-
putchar
参数为int
,但实际会转换为unsigned char
。若传入值超出0~255
,结果可能不符合预期。 -
错误示例:
putchar(300);
(300 超出unsigned char
范围,实际输出为300 % 256 = 44
,即字符,
)。
-
-
与
printf
的区别:-
putchar
只能输出单个字符,而printf
支持格式化字符串。 -
putchar
更轻量,适合高频次字符输出(如循环中)。
-
-
错误处理:
实际编程中很少检查putchar
的返回值,但在需要严格处理输出错误时(如写入文件失败),应检查是否返回EOF
。
总结
-
核心用途:逐字符输出内容,适合简单场景或需要精细控制字符流的操作。
-
适用场景:
-
手动实现字符串遍历输出。
-
结合
getchar
处理输入流。 -
输出单个特殊字符(如换行、制表符)。
-