我刚刚开始学习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;
}
}
}
答案 0 :(得分:0)
尝试在1,2,3周围添加单引号,就像使用q一样。 cin期望输入一个char,所以要对它进行评估。例如:if (quit == '1')