C语言 这个程序为什么要加getchar() 前面有scanf了啊

#include <stdio.h>
main()
{
char a;
int i,b;
scanf("%c",&a);
getchar();
for (i=0;i<26;i++){
b=a+i;
if((a>='a'&&a<='z'&&b>'z')||(a>='A'&&a<='Z'&&b>'Z'))
b=b-26;
printf("%c", b);
}
printf("\n");
}

加getchar(); 的目的是吸收掉前面执行scanf("%c",&a); 时遗留在输入缓冲区里的'\n',以免后面还有某些输入语句时由遗留在输入缓冲区里的'\n'引起错误。在这段代码中,后面已经没有输入语句了,所以有没有getchar();都可以。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-12-18
scanf函数读完一个字符后,缓冲区里还留下一个你输入的回车,所以要用getchar读出来并丢弃。在此程序中确实没有必要这么做,但是你可以试试连续用多个scanf读取字符,就会知道什么时候该这样做了。本回答被提问者采纳
第2个回答  2018-12-18
一般getchar没有指定返回值,都是暂停程序的作用

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网