如何在另一个函数中使用在函数中编写的内容?

时间:2019-05-11 06:40:31

标签: c++

我正在尝试制作一个程序,其中一个函数接受您输入的密码,而在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);
}

1 个答案:

答案 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"运算符“ ==” 不是也是赋值运算符。我将把您留在您需要查看的一些链接下面。

干杯!