繁体   English   中英

转换语句不执行案例(c)

[英]Switch Statement Not Executing Cases (c)

我做了一个switch语句,但是,它仅适用于已设置的常量。 如果我尝试将其与用户输入配合使用,则只有一种情况有效,其他所有情况均无效。 现在,无论我输入什么,它始终使用默认大小写。 我尝试添加另一个getchar()来清除缓冲区中的\\n字符,但这没有什么不同。 我会在这里张贴整个switch语句:

      char option=' ';
      option=getchar();
      switch(option){

        //Parallel resistance calculations
        case 'p':
            CLEAR
            //PResistance();
            printf("RESISTANCE");
            getchar();
            break;

        //Ohm's Law calculations
        case 'o':
            CLEAR
            printf("OHM");
            //Ohm();
            break;

        //Exits program
        case 'q':
            printf("Good bye! Stay safe in the laboratory! :)\nPress any key to exit");
            getchar();
            exit(0);
            break;

        //Error checking
        default :
            printf("Invalid input, Try again"); 
            break;

    }


}
while (option!='q');

我注释掉了这些功能,以便可以使用print语句测试其功能。

每当在C语言中从stdin输入characterstring ,请始终确保输入缓冲区中没有\\n 为此,请始终在获取integerfloat输入之后使用getchar()

在您的情况下,也许您在输入character之前已经输入了integer 因此,尝试在输入character之前编写一个getchar()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM