c语言 - 代码在案例"0"时失败 - 我不明白为什么



这是强调我遇到的问题的最小形式的代码。 代码在"退出"时失败(情况"0"( - 程序只是崩溃。我怀疑这与 while 循环有关。 无论我为退出情况选择什么字符(而不是"0"(,都会出现问题。

#include <stdio.h>
void main()
{
int run=1;
char menu_option; 
while (run==1) 
{
printf("Choose case:n");
scanf ("%s", &menu_option);
switch (menu_option) {
case '1':
printf("1");
break;
case '2':
printf("2");
break;
case '0':
run=0;
break;
default:
printf("Wrong input, try againn");
}
}
}
menu_option

不是字符串,因此%s是错误的格式说明符。 您需要%c,以空格为前缀,以防止空格(包括换行符(被解释为有效的字符输入。

scanf (" %c", &menu_option);

最新更新