[英]c++ string validation for user input
我要做的只是提示用户输入是或否的答案,并对其进行验证以确保他们没有键入任何愚蠢的内容。
我认为这将是一个相对简单的任务,但是在我自己多次失败尝试之后,并在网上四处看看,似乎每个人对于最佳方法都持不同意见。
伪代码
问问题
用户提示
检查输入=是或输入=否
如果是,请执行方案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
}
User.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")
选择不能同时是“是”和“否”。
您没有从validation()
返回正确的choice
:
void User::validation(std::string &choice) // <-- insert a & here
C / C ++对于字符串不起作用,因为==运算符没有执行您认为对std :: string对象和char *数组所做的事情。 请改用std :: string compare()方法。 参考: http : //www.cplusplus.com/reference/string/string/compare/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.