我要求用户输入一个字母,每个字母都有不同的作用。如果他们输入任何其他内容,它会在最后打印出 else 语句。问题是,无论我输入什么,else 语句都会被打印,并且它会打印“Enter a letter:”两次。我一直在google和stackoverflow上搜索,我不知道是我瞎了还是怎么的,但我找不到答案。请帮忙。
while(false){ //I have a method here that returns true or false
printf("Enter a letter: ");
char letter;
scanf("%c", &letter);
if(letter == 'a'){ //position left
//do some code
}else if(letter == 'd'){ //position right
//do some code
}else if(letter == 'w'){ //value up
//do some code
}else if(letter == 'x'){ //value down
//do some code
}else{
printf("NEW MOVEMENT: Enter a valid command by keyword:\n");
printf("Valid commands: a d w x\n");
}
}
最佳答案
我认为你的问题是 scanf()
之后遗漏的换行符 \n
将scanf()
代码更改为
scanf(" %c", &letter);
%c
之前的空格应转义留下的换行符 \n
字符。
关于c - 我该如何在 C 中解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33332260/