只要输入不是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还是其他任何输入,它都会在新行中打印出“输入输入:B”。任何人都可以告诉我如何解决这个问题,谢谢!
以下是发生的事情:
输入输入:a
A
在输出后输入输入:B / 它总是打印这一行,如何 我可以摆脱它吗? /
输入输入:a
A
输入输入:B
输入输入:b
乙
输入输入:B
输入输入:b
答案 0 :(得分:4)
为了忽略换行符,scanf
应该是:
scanf(" %c", &input);
^
此外,您可能希望在printf
之后立即刷新标准输出:
printf("Enter Input:");
fflush(stdout);
答案 1 :(得分:1)
你需要吃一个newline
字符:
scanf("%c", &input);
while((ch=getchar())!='\n');
答案 2 :(得分:0)
错误是因为从输入中读取了换行符。
你也可以参考这个:Why doesn't getchar() wait for me to press enter after scanf()?