我想做的就是提示用户回答是或否,并对其进行验证以确保他们没有输入愚蠢的内容。
我认为这将是一个相对直接的任务,但是在我自己多次尝试失败之后,并且在网上四处看看,似乎每个人都对最好的方法有不同的看法。
伪代码
提问
提示用户
检查 input = yes 或 input = no
如果是,做场景a
不,做场景b
如果无效,返回第2点
代码
main.cpp
std::cout << "Do you have a user name? ("yes", "no"): ";
std::cin >> choice;
user.validation(choice);
if (choice == "yes")
{
// some code
}
if (choice == "no")
{
// some code
}
用户.cpp
void User::validation(std::string choice)
{
while (choice != "yes" && choice != "no")
{
std::cout << "Error: Please enter 'yes' or 'no': ";
std::cin >> choice;
if (choice == "yes" && choice == "no")
{
break;
}
}
}
这是有效的,直到他们最终输入是或否,如果是,则跳过去,如果不是,直接进入程序的下一部分
而且我希望能够在整个程序中多次调用 user.validation 来验证其他是/否问题
最佳答案
尝试改变这个
if (choice == "yes" && choice == "no")
为此
if (choice == "yes" || choice == "no")
选择不能同时是"is"和“否”。
关于用于用户输入的 C++ 字符串验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20501467/