首页 > 解决方案 > 如何检查用户的输入是否既有效又是我正在寻找的数字?

问题描述

我如何创建一个条件语句来防止进入失败状态,并在数据无效或数据不是 1、2、3 或 4 时向用户询问新数据?

int choice;

while ( !choice || choice != 1 || 2 || 3 || 4){
     cout << "Entry Invalid. Enter again: ";
     cin >> choice
}

例如,如果用户输入“f”,则将处理失败状态,程序将请求新数据。当他们输入 5 时,程序会说“Not a valid number”,并要求输入新数据。

标签: c++while-loopconditional

解决方案


因为stoi你需要 C++11 标准

int choice;
string inp;

cin >> inp;

while(inp != "1" && inp != "2" && inp !="3" && inp !="4"){

    cout << "Wrong input , type again" << endl;
    //system("PAUSE");
    cin >> inp;

}
choice = stoi(inp);
cout << choice;

推荐阅读