Logo

郎哥编程

第15讲:接收并显示字符

2026-03-03 21

通过scanf()函数可以格式化输入整数和浮点数,C语言还提供了输入字符的函数,这些函数可以允许用户输入和输出字符。其中最常用的是putchar()函数和getchar()函数,这些函数也在文件stdio.h定义。

一、getchar()函数

getchar()函数是一个没有参数的函数,它从标准输入(键盘)读取一个字符,返回该字符的编码值(通常是ASCII码)。

当程序调用getchar()函数时,程序就等着用户按键,用户输入的字符被存放在键盘缓冲区中。直到用户按回车为止。当用户键入回车之后,getchar()函数才开始从标准输入中每次读入一个字符。

getchar()函数的返回值是用户输入字符的ASCII码,若返回-1,则表示输入结束-1。getchar()函数读取字符时会将字符回显到屏幕。若用户在按回车之前输入了不止一个字符,其他字符会保留在键盘输入缓存区中,等待后续getchar()函数读取。也就是说,后续的getchar()函数调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完后,才等待用户按键。

另外,getchar()函数只能接收单个字符,输入的数字也按字符处理,当输入多于一个字符时,只接收第一个字符,后面的字符等待后续getchar()函数读取。

因为getchar()函数会把没有读取的字符存储到键盘输入缓冲区中,若键盘输入缓冲区没有清空,getchar()函数会先从键盘输入缓冲区读取字符,而不是用户从键盘输入的字符,因此再调用getchar()函数之前,通常先调用函数fflush(stdin)清空输入缓冲区,传入的参数stdin是标准输入的英文名称。

【例1】输入并显示单个字符

程序清单 sample.c

#include <stdio.h>
int main()
{
   // 声明字符型变量,接收输入的字符
   char chTemp;
   // 清空键盘输入缓冲区
   fflush(stdin);
   // 从键盘读取一个字符
   chTemp = getchar();
   // 输出字符
   printf("输入的字符为: %c\n",chTemp);
   return 0;
}

二、putchar()函数

putchar()函数对应于getchar()函数,putchar()函数把一个字符送到标准输出。标准输出默认是计算机显示器,因此putchar()函数会把输出的字符显示在计算机屏幕上。

putchar()函数的一般形式为:

putchar(c)

参数c为字符时,输出该字符。参数c为介于0~127(包括0及127)之间的十进制整型数时,它会被视为对应字符的ASCII代码,输出该ASCII代码对应的字符。参数c为一个事先用char定义好的字符型变量时,输出该变量所指向的字符。

【例2】输出字符

程序清单 sample.c

#include <stdio.h>
int main()
{
   // 声明字符型变量
   char ch1,ch2,ch3;
   // 提醒用户输入字符
   printf("请输入3个字符:\b");
   // 清空键盘输入缓冲区
   fflush(stdin);
   // 从键盘读取3个字符
   ch1 = getchar();
   ch2 = getchar();
   ch3 = getchar();
   // 输出字符
   putchar(ch1);
   putchar(ch2);
   putchar(ch3);
   // 输出换行符
   putchar('\n');
   return 0;
}

代码声明了3个变量ch1、ch2、ch3,使用printf()函数输出提示信息,提示用户输入3个字符,然后调用fflush(stdin)函数清空键盘缓冲区,连续调用3次getchar()函数读取用户输入的3个字符,分别赋值给变量ch1、ch2、ch3,最后调用putchar()函数输出变量ch1、ch2、ch3存储的字符到屏幕。

代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论