[英]Comparing char in a while loop
只要输入不是x,循环将继续询问输入,并打印出A或B。
int main (void){
char input;
while( input != 'x'){
printf("Enter Input:");
scanf("%c", &input);
if (input == 'a'){
printf("A \n");
}
else{
printf("B\n");
}
}
return (0);
}
问题是,无论我输入a还是b或其他任何内容作为输入,每次输入输入后,它都会打印输出,并且还会在新行中打印出“ Enter Input:B”。 谁能告诉我如何解决这个问题,谢谢!
这是发生了什么:
输入输入:a
一种
输入Input:B / 输出后,它总是打印此行,我如何摆脱它? /
输入输入:a
一种
输入输入:B
输入输入:b
乙
输入输入:B
输入输入:b
为了忽略换行符, scanf
应该可能是:
scanf(" %c", &input);
^
您也可能想在该printf
之后立即刷新stdout:
printf("Enter Input:");
fflush(stdout);
您需要吃newline
:
scanf("%c", &input);
while((ch=getchar())!='\n');
该错误是因为从输入中读取了换行符。
您也可以参考这一点: 为什么在scanf()之后,getchar()为什么不等我按Enter?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.