运行一个简单的C ++函数

时间:2018-02-05 21:34:08

标签: c++ loops

我刚刚开始学习C ++的基础知识,目前正在尝试制作一个基本的东西。我遇到的问题发生在下面的粘贴功能中。

此时它在运行时几乎没有任何作用。所有我试图做到这一点使得函数永远一遍又一遍地运行,直到用户输入字母'q'。

即使用户输入一些随机字符串,该函数也必须继续运行,任何事情,'q'是唯一应该停止循环的击键。

我试图用'cin.whatever'来玩,并且没有找到成功。如果你有答案,请提供尽可能多的解释。谢谢!

void menu()
{
    cin.clear();
    cin.ignore();
    char quit = 'w';
    while (quit != 'q') // while loop to allow the user infinite tries
    {
        cout << "Which story would you like to play? Enter the number of the story (1, 2, or 3) or type q to quit: " << endl;
        cin >> quit;

        if (quit < '1' or quit > '3') // make sure the user picks a valid choice
        {
            cout << "Valid choice not selected." << endl;
        }
        if (quit == '1')
        {
            story1(); // run story 1
        }
        if (quit == '2')
        {
            story2(); // run story 2
        }
        if (quit == '3')
        {
            story3(); // run story 3
        }
        if (quit == 'q')
        {
            cout << "good bye" << endl;
            break;
        } 
    }
}

1 个答案:

答案 0 :(得分:0)

尝试在1,2,3周围添加单引号,就像使用q一样。 cin期望输入一个char,所以要对它进行评估。例如:if (quit == '1')