char answer;
cout << "Launch simulation? (Y/N) : ";
cin >> answer;
if (answer == 'N')
{
getchar();
return 0;
}
else if (answer == 'Y')
{
// do something, calculations display page
}
else
{
cout << "Invalid input, enter 'Y' or 'N'." << endl;
while (answer != 'Y' || answer != 'N'){
cin.getline(answer, 1);
}
我可能过度复杂了,但我怎样才能使 cout&lt;&lt; “启动模拟?(Y / N):”; 循环,直到输入'Y'或'N'与“无效输入,输入'Y'或'N'。”消息。
'N'将返回菜单页面。
更好的是只有输入'Y'和'N'才能输入,所以不需要while循环,问题永远不会重复,但我不知道从哪里开始。
感谢。
答案 0 :(得分:0)
您的陈述
while (answer != 'Y', 'N');
实际上并没有做任何事情。
但是,你可能意味着
char answer = 'S'; // or some other char not 'Y', 'N'
cout << "Launch simulation? (Y/N) : ";
cout << "Invalid input, enter 'Y' or 'N'." << endl;
while (answer != 'Y' || answer != 'N'){
cin >> answer;
}
//other stuff
答案 1 :(得分:0)
一种简单的方法是将所有逻辑保持在无限循环内,然后在满足条件时将其中断,例如
char answer;
while(TRUE)
{
cout << "Launch simulation? (Y/N) : ";
cin >> answer;
if (answer == 'N')
{
getchar();
return 0;
}
else if (answer == 'Y')
{
// do something, calculations display page
return 0;
}
else
cout << "Invalid input, enter 'Y' or 'N'." << endl;
}