【C语言】putchar()核心用法与注意事项

在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. 注意事项

  1. 参数类型

    • putchar 参数为 int,但实际会转换为 unsigned char。若传入值超出 0~255,结果可能不符合预期。

    • 错误示例:putchar(300);(300 超出 unsigned char 范围,实际输出为 300 % 256 = 44,即字符 ,)。

  2. 与 printf 的区别

    • putchar 只能输出单个字符,而 printf 支持格式化字符串。

    • putchar 更轻量,适合高频次字符输出(如循环中)。

  3. 错误处理
    实际编程中很少检查 putchar 的返回值,但在需要严格处理输出错误时(如写入文件失败),应检查是否返回 EOF


总结

  • 核心用途:逐字符输出内容,适合简单场景或需要精细控制字符流的操作。

  • 适用场景

    • 手动实现字符串遍历输出。

    • 结合 getchar 处理输入流。

    • 输出单个特殊字符(如换行、制表符)。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值