我正在为C语言创建一个简单的井字游戏,这里有一个特定的函数让我遇到了问题。它应该让用户选择'X'或'O',大多数情况下它是可以工作的。但是,如果我输入一个错误的符号,它会打印出以下语句:"无效的符号,请重新输入:"两次。
为什么会这样,我该如何解决?
char assign(void)
{
char user;
printf("Would you like to be X or O (Enter your choice): ");
user=getchar();
while(user != 'X' && user != 'x' && user != 'O' && user != 'o')
{
printf("Invalid symbol, please re-enter: ");
user=getchar();
}
if(user == 'O' || user == 'o') return('O');
else if(user == 'X' || user == 'x') return('X');
}
while
循环在到达字符之前重复两次printf()
。很可能还有其他类似的问题。 - Jonathan Leffler