[英]Having trouble with a C programming if else statement
当我键入M或F时,它会直接跳到循环的“无效选项”部分,而不是打印特定的文本。 任何输入表示赞赏。
#include <stdio.h>
int main() {
int MorF; //gender choice
printf("_____________________________________\n\n");
printf("Pick a gender. Type: M for Male or F for Female\n");
scanf(" %d" , &MorF);
if ( MorF == 'm' || MorF == 'M' ) {
printf("You chose Male\n");
} else if ( MorF == 'f' || MorF == 'F' ) {
printf("You chose Female\n");
} else {
printf("Invalid Option\n");
}
printf("______________________________________\n\n");
}
https://www.tutorialspoint.com/c_standard_library/c_function_getchar.htm
您可能要使用getchar或类似的东西代替scanf,或对%s使用%c。 现在,似乎您要输入一个int,但要检查一个字符输入。
%d
格式说明符扫描以10为底的整数。 您要一个char
。 char
的正确格式说明符是%c
,而避免scanf
找不到有效输入并将其留在stdin
可避免死循环的正确格式字符串是" %c"
。 也就是说,如果您坚持使用scanf
,而不是getchar
或fgets
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.