【发布时间】:2013-08-24 05:07:07
【问题描述】:
我正在为 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');
}
【问题讨论】:
-
当你回车时它可能会捕捉到“\n”字符。
-
Using getchar() in a while loop 的可能重复项。今天早些时候还有
whileloops duplicatesprintf()two times before getting to character。可能还有其他人。
标签: c while-loop