我要求用户输入一个字母,每个字母都做不同的事情。如果他们输入其他任何内容,它将在最后打印出else语句。问题是无论我输入什么内容,else语句都会被打印,并且打印两次“输入字母:”。我一直在搜索谷歌和堆栈溢出,我不知道我是盲人还是盲人,但我找不到答案。请帮忙。
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");
}
}
最佳答案
我认为您的问题是\n
后遗漏了换行符scanf()
将scanf()
代码更改为
scanf(" %c", &letter);
%c
之前的空格应转义遗漏的换行符\n
字符。关于c - 如何在C中解决此问题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33332260/