我正在尝试制作一个程序,其中一个函数接受您输入的密码,而在checkPassword函数中,我要做的就是检查密码是否与正确的单词匹配。如果是这样,我会打印“正确”。我如何通过将其分解为不同的功能来实现此功能,例如如何使checkPassword函数采用我在loadPassword中编写的内容?如何使其在主要功能中运行?
void loadPassword() {
std::string password;
std::cout << "Enter password: \n";
std::cin >> password;
}
std::string checkPassword(std::string password) {
std::string correct;
correct == "right";
if (password == correct) {
std::cout << "correct";
}
}
int main() {
loadPassword();
checkPassword(//HOW DO I MAKE IT TAKE WHAT I WROTE IN loadPassword);
}
答案 0 :(得分:1)
要么让loadPassword()
返回一个std::string
,然后将其传递给checkPassword(std::string password)
,要么将密码作为全局变量进行设置,这是我强烈建议您反对的(最佳做法。 )
所以最好的解决方案是:
std::string loadPassword() {
std::string password;
std::cout << "Enter password: \n";
std::cin >> password;
return password;
}
bool checkPassword(std::string password) {
std::string correct;
correct = "right"; //why ==? == returns a boolean.
if (password == correct) {
return true;
}
return false;
}
int main() {
std::string passInput = loadPassword();
if (checkPassword(passInput)) std::cout << "correct";
else std::cout << "not correct";
}
编辑:很抱歉,我没有注意checkPassword()返回类型,Paul指出了这一点。您不能为函数指定返回类型,也不能以返回该类型的实例而结束。在这种情况下,我编辑了您的checkPassword()
以返回布尔值。如果为true,则您的密码正确,否则不正确。此外,correct=="right"
运算符“ ==” 不是也是赋值运算符。我将把您留在您需要查看的一些链接下面。
干杯!