getchar()只能接你输入的一个字符,而不是字符串。getchar()也不是乱用的,一般情况就用在输入字符的的情况下。至于你后面说的每当有输入语句时都去加一个getchar()是没有必要的。如果你想用getchar()去接住上次输入的回车符以便给下面的运算带来准确性的话,就是在输入整型或者浮点型之后再加一个getchar(),至于要不要在每一行都加就要看什么情况了。
我可以给你举两个个简单的例子#include"stdio。h"main(){char ch1,ch2,ch3;printf("Enter:");ch1=getchar();getchar();printf("Enter:");ch2=getchar();printf("Enter:");ch3=getchar();putchar(ch1);putchar(ch2);putchar(ch3);putchar('
');}可以tc运行下。
这个程序就是每句后加了getchar()的,是用来你在运行的时候接住你输入的回车的(因为回车也是字符)。再来看一个例子不是每句都需要getchar()的#include"stdio。h"main(){float x,y,z; char po;printf("Enter:'); /*提示用户输入数据*/ scanf("%f,%f",&x,&y);getchar(); /*接住scanf输入后的回车符*/printf("选择运算符号 、—、*、/:"); op=getchar(); /*输入运行符的,不是接回车*/ switch(op){case ' ':z=x y;break;case '-':z=x-y;break;case '*':z=x*y;break;case '/':z=x/y;break;default:printf("%c,不是运行符。
",op);exti(0);} /*用来退出程序 */ printf(%g%c%g=%g
",x,op,y,z);}这个是计算器的程序,这里只用了一个getchar接回车(就是你所说的吃掉回车)。再来看一个不需要getchar接回车的程序#include"stdio。
h"main(){char ch1;ch1=getchar();putchar(ch1);}这个程序就是打印出你输入的字符,不需要用getchar来接回车,因为getchar只接一个字符,当你输入一个字母再回车时,getchar只接第一个字母,默认回车符跳出输入界面。
以上程序在turboc中运行。希望你能通过三个例子明白什么时候用getchar,什么时候不需要。
全部