getchar 函数使用注意事项

#include <stdio.h>
 
void main()
{
	char a,b;
	printf("enter  char:");
	a=getchar();
	printf("%c\n",a);
	printf("enter char:");
	b=getchar();
	printf("%c\n",b);
}

按常理来说,当我们编译运行以后,在界面中输入一个字符,屏幕将打印出一个字符,再输入一个字符,屏幕也将打印出第二次输入的字符。
我们来看下实际结果:
______________________________
enter char:s
s
enter char:
Press any key to continue|
______________________________

当我们输入一个字符s时,直接就跳到了”Press any key to continue”,而在第二次”enter char”时我们并没有让输入要输入的字符。
这是为什么呢?来看下”getchar()”函数的使用方法。
使用”getchar()”函数输出字符时,实际的输入过程是:在键盘上输入字符并按下回车键后,字符和回车键被送入内存的缓存区(称为键盘缓存区)中,然后getchar()函数再从缓冲区中读一个字符,第1个”getchar()”函数将读入的字符赋值给字符型比变量a,而缓存区中的回车换行符被后面的”b=getchar()”语句读入而使b实际成为”空”字符。
所以我们应该将代码改一下,在”a=getchar()”后面添加一个”getchar()”。

#include <stdio.h>
 
void main()
{
	char a,b;
	printf("enter  char:");
	a=getchar();
        getchar();
	printf("%c\n",a);
	printf("enter char:");
	b=getchar();
	printf("%c\n",b);
}

第1个”getchar()”函数将读入的字符a,第2个”getchar()”函数用于”吃掉”输入缓冲区中的回车换行符,防止后面的”b=getchar()”读取缓存区的”回车换行符”。这样就不会出错了,看看运行结果。
______________________________
enter char:s
s
enter char:x
x
Press any key to continue|
______________________________

所以在使用getchar 函数时一定注意,否则总是会有输出错误的问题。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值