C语言中的getchar
和putchar
函数分别用于从标准输入读取一个字符和向标准输出写入一个字符。它们是处理单个字符输入输出的简便方法,定义在<stdio.h>
头文件中。
getchar函数
getchar()
函数用于读取下一个可用的字符从标准输入(通常是键盘),并返回读取的字符。这个函数不需要参数,并在读取成功时返回一个int
类型的值,该值为读取的字符的ASCII码。如果遇到文件末尾或读取失败,则返回EOF(通常定义为-1)。
代码示例:
1#include <stdio.h>
2
3int main() {
4 int ch; // 使用int类型来存储字符
5
6 printf("请输入一个字符: ");
7 ch = getchar(); // 读取一个字符
8
9 printf("您输入的字符是: ");
10 putchar(ch); // 输出读取的字符
11
12 return 0;
13}
putchar函数
putchar(int ch)
函数用于向标准输出写入一个字符。它接受一个int
类型的参数(尽管是写字符,但参数类型是int
以容纳EOF的值),并尝试写入该参数对应的字符到标准输出。在成功写入字符时,函数返回写入的字符;如果发生错误,则返回EOF。
代码示例:
1#include <stdio.h>
2
3int main() {
4 char ch = 'A'; // 定义字符变量
5
6 printf("输出的字符是: ");
7 putchar(ch); // 输出字符'A'
8
9 return 0;
10}
编码事项
使用int存储getchar的返回值:由于
getchar
返回值的范围要超过char
类型能表示的范围(以便包含EOF),因此推荐使用int
类型变量来存储getchar
的返回值。处理EOF和错误:在从
getchar
读取数据时,需要检查返回值是否为EOF,这样可以正确处理文件结束或输入流错误的情况。字符输出的立即显示:标准输出通常是行缓冲的,意味着
putchar
输出的字符可能不会立即显示在屏幕上,直到缓冲区满或遇到换行符。可以使用fflush(stdout);
来强制刷新输出缓冲区。输入缓冲区的处理:使用
getchar
时,输入的字符直到按下回车键才被程序读取,因为输入也是缓冲的。如果要连续读取多个字符,需要考虑到回车键产生的换行符也可能被读取。
通过理解和使用getchar
和putchar
函数,可以实现对标准输入输出流中单个字符的简单控制,这在许多场景下非常有用,例如读取用户输入、显示消息等。
文章转载自一如老师,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




