Bra*_*cus 5 c scanf char while-loop
char player_select(void){
char player = 'n';
while(player == 'n'){
printf("Select your player (X or O): ");
scanf("%c\n", &player);
if(player != 'X' && player != 'O'){
printf("Invalid input. Try again.\n");
player = 'n';
}
}
printf("Your character input is: %c\n", player);
exit(0);
return player;
}
Run Code Online (Sandbox Code Playgroud)
我在这里得到一些奇怪的输出:
选择你的播放器(X或O):X
输入无效.再试一次.
选择你的播放器(X或O):i
你的角色输入是:X
尝试:
if (scanf("%c\n", &player) == 1 && player != 'X' && player != 'O'){
printf("Invalid input. Try again.\n");
player = 'n';
}
Run Code Online (Sandbox Code Playgroud)
带入scanf
,if
从上面的代码中删除,并检查其返回值 == 1
。
\n
如果这还不够,您可以尝试从 scanf 掩码中删除。