C无效输入后循环通过简单菜单两次

时间:2017-02-27 00:50:02

标签: c while-loop menu scanf

我正在尝试在C中创建一个简单的基于文本的菜单。我正在使用无限循环并在我让角色退出菜单时断开。但是,在输入不是退出字符的字符后,它会在请求另一个输入之前循环两次菜单。我的代码如下:

while(1){
    printf("Please select an option: \na) Evaluate exponential function\nb) Evaluate sin function\nc) Exit\n");
    scanf("%c",&ch);
    if(ch == 'd')
        {
            break;
        }
}

可能导致此问题的原因以及如何解决?我最好的猜测是它从scanf中获取一个额外的字符,并在下次要求输入时使用它。

我感谢任何帮助。感谢。

0 个答案:

没有答案