循环一个cout直到提供有效输入?

时间:2015-03-13 02:14:31

标签: loops input while-loop cout cin

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循环,问题永远不会重复,但我不知道从哪里开始。

感谢。

2 个答案:

答案 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; 
}
相关问题