【发布时间】:2019-05-02 02:44:09
【问题描述】:
我对 C++ 非常陌生,无法真正弄清楚这一点。我尝试了几件事,但我觉得我只是缺少一些简单的东西。
我有这个控制台应用程序,用户可以在其中输入预定义的密码。如果密码不正确,它会提示他们重新输入密码。如果密码正确,则只是结束程序,但我希望它说“授予访问权限!”然后结束。
我遇到的一个附带问题是,当输入多个单词作为密码时,每个单词都会打印“拒绝访问”。
string password;
cout << "Please enter the password!" << endl;
cin >> password;
if (password == "test") {
cout << "Access granted!";
} else {
do {
cout << "Access denied! Try again." << endl;
cin >> password;
} while (password != "test");
}
return 0;
【问题讨论】:
-
您需要将
if / else逻辑移动到循环内。 -
查看这个问题,了解为什么
cin只读取一个单词:stackoverflow.com/questions/9469264/…(还要注意std::string比原始的char数组更好更安全) -
@πάνταῥεῖ 你要创建一个答案吗?
-
将
"cout << "Access granted!";移动到循环之后将是最简单的更改。 -
@CelticTree 这是一个非常简单的项目,目标简单,没有明显的限制。所以解决方案也可能很简单。这不太可能具有挑战性。此外,更简单的通常更清洁。原则上,要求更清洁的解决方案通常与要求更具挑战性的解决方案相反。