c语言中用getchar()接收回车

#include<stdio.h>
#include<ctype.h>
void SwitchShow(char c);
int main()
{
char cCharPut;
char cCharTemp;
printf("the first string is:");
scanf("%c",&cCharPut);
SwitchShow(cCharPut);
cCharTemp=getchar();
printf("the second string is:");
scanf("%c",&cCharPut);
SwitchShow(cCharPut);
return 0;
}
void SwitchShow(char cChar)
{
if (isalpha(cChar))
{
printf("输入的是字母\n");
}
if (isdigit(cChar))
{
printf("输入的是数字\n");
}
}
问题就在这句cCharTemp=getchar();
注释说是用来接收回车的,我不太明白为什么会放在程序中的这个位置,不是有\n就已经是回车了么,而且我试过了,没有这句的话程序会执行不下去

cCharTemp=getchar();主要是接受scanf("%c",&cCharPut);这里按的回车,执行程序时,你输入a,然后回车,实际上缓冲区接受的是两个字符,第一个是'a'第二个是‘\n',scanf("%c",&cCharPut);只把a从缓冲区中取走,但是'\n'还在缓冲区。如果没有getchar这个语句,那么下面的语句scanf("%c",&cCharPut);就会直接读取缓冲区中的'\n‘而不会等到你再去输入字符。而getchar是取走缓冲区中一个字符,把回车给取走,缓冲区空了,你才能再次输入
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-12-21
就像上面的仁兄说的,
这里的getchar()其实只是为了清除键盘缓冲区中的回车符用的。它的目的是防止下一次执行scanf时,将键盘缓冲区内的回车当作本次用户输入数据给错误地读入。
把他删掉,那么第二次scanf接收到的字符就是回车了,

比如:你第一次输入的是A然后回车。那么缓冲区里就会有A和回车两个字符,第一次取走了A,那么回车不取走清除的话,第二次scanf就会直接误读到回车。本回答被网友采纳
第2个回答  2013-12-21
如果没有这句cCharTemp=getchar();
那么回车符会被printf("the second string is:");
scanf("%c",&cCharPut);接收了

c语言中用getchar()接收回车
cCharTemp=getchar();主要是接受scanf("%c",&cCharPut);这里按的回车,执行程序时,你输入a,然后回车,实际上缓冲区接受的是两个字符,第一个是'a'第二个是‘\\n',scanf("%c",&cCharPut);只把a从缓冲区中取走,但是'\\n'还在缓冲区。如果没有getchar这个语句,那么下面的语句scanf("%c...

C语言getchar()问题,耐心的进!
很明显:第二个scanf输入后多一个回车。如果下面没有一个getchar吸收回车符。那么if,if执行完毕后,最后这个getchar会吸收这个回车符。立马结束。程序一闪而过。所以可以肯定 第一个getchar是为了吸收第二个scanf的多余回车符 第二个getchar是为了模拟‘按任意键退出’的效果。建议最后引入:stdlib.h ...

C语言中getchar()啥意思
getchar()函数也会获取你输入的回车字符'\\n'

c语言问题 这里为什么要用getchar来接收回车
不用getchar来接收回车,下一个接收的字符就是回车,而不是下一行首字符

C语言里getchar()作用?
getchar()的作用是从键盘上读入一个字符,并带回显。getchar()函数等待输入直到按回车才结束,回车前的所有输入字符都会逐个显示在屏幕上,但只有第一个字符作为函数的返回值。getchar函数原型如下:函数格式:int getchar(void);功 能:从标准输入设备读取下一个字符 返 回 值:返回所读字符,否则...

c语言中用getchar()输入字符是回车算一个字符吗
是的,c语言中用getchar()输入字符是回车算一个字符。解析:getchar()是stdio.h中的库函数,作用是从stdin流中读入一个字符。如果stdin有数据的话不用输入它就可以直接读取了。当程序调用getchar时,程序就等着用户按键。用户输入的字符被存放在键盘缓冲区中,直到用户按回车为止(回车字符也放在缓冲区...

C语言题,有关getchar()的一个问题
getchar先把你输入的字符先放入缓冲区,当你按了回车后,先将回车放入缓冲区,再在缓冲区送入一个字符给内存,不是你按的回车,是你输入的第一个字符,如果你按一个字符后按回车,到第五行的getchar就接收了你输入的回车,如果你输入了两个以上字符,下一个(就是第五行的)getchar就会接收缓冲区内...

c语言getchar() 问题
getchar()的作用就是把这个字符读入进去,防止这个字符 影响后续程序的操作.上面三个答案都没有指出这个关键的部分.getch()和getchar()的区别如下 getch()当你敲击某个键的时候就立即返回了 getchar()可接受多个字符,直到按回车才返回,但是第一个字符作为函数的返回值......

c语言中 用getchar函数提取回车键是在什么情况下
其实很简单的,按回车时,getchar才能读到数据,while ((ch = getchar())!= '#')这句的意思是如果不是#号,就循环,所以你必须输入一个#,来终止循环 这个循环是在你回车后开始的,但如果你不输入#,它还是在循环的里面工作,所以又进入了下一次的键盘输入 ...

C语言里getchar()作用?
C语言中的getchar()函数是一个关键的输入操作工具,其主要作用是从键盘设备中接收用户输入的一个字符。这个函数的执行流程是等待用户的按键输入,直到用户按下回车键才会停止。在此期间,屏幕上会显示用户输入的所有字符,但值得注意的是,getchar()仅返回用户按下并输入的第一个字符,其余的字符不会作为...

相似回答