while(getchar()!='\n');在这段程序里的作用是什么?求解释

getchar();
while((choice=getchar())!='4') //进行循环多次选择
{
while(getchar()!='\n');
switch(choice){
case '1': //加法
{
printf("The result is %d+%di\n",a+c,b+d);
break;
}
case '2': //减法
{
if(b-d>=0)
printf("The result is %d+%di\n",a-c,b-d);
else
printf("The result is %d%di\n",a-c,b-d);
break;
}
case '3': //乘法
{
printf("The result is %d+%di\n",a*c-b*d,a*d+b*c);
break;
}
default: //退出
break;
}
printf("\n");
printf("Please select a function:\n");
}
这段代码里为什么去掉while(getchar()!='\n');后会连着输出两遍Please select a function: ?新人看不太懂求解释

是能够清除内存的意思。

那条语句是:

while(getchar()!='\n')

continue;

有清除内存的功能。

getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回,。

扩展资料:

while语法

Pascal

while <条件> do <语句>

意为当条件符合时,接着做下面的语句;不符合时,退出循环。

C

do <语句> while(<条件>);

while(<条件>) <语句>;

C++

while(<条件>) <语句>;

do <语句> while(<条件>);

注意:do...while 循环是 while 循环的变种。

参考资料来源:百度百科-while (循环语句及英文单词)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-06-03
while(getchar()!='\n');的意思是在这里必须输入一个回车,否则程序不会向下执行。纠其原因,可能是前面输入时遗留在缓冲区里的'\n'会对代码的正确执行造成影响——只是猜,因为代码并不完整,说不具体。本回答被提问者和网友采纳
第2个回答  2018-06-03
while(getchar()!='\n');就是说只要输入的字符不是换行符