0

我尝试制作一个非常小的基本程序来尝试使用不是单个数字或字母的输入。我输入了这个代码,它不起作用。它启动并工作,但是当您输入输入时,它会停止程序而不使用 if 和 else if。为什么这不起作用?

int main()
{
    using std::cout;
    using std::cin;
    using std::endl;

    char input[256];

    cout << "Is Life Good?\n";
    cin >> input;

    if (input == "yes") {
    }
    else if (input == "Yes") {
        cout << "Good\n";
    }
    else if (input == "YES") {
        cout << "Good\n";
    }
    else if (input == "no") {
        cout << "Change something\n";
    }
    else if (input == "No") {
        cout << "Change something\n";
    }
    else if (input == "NO") {
        cout << "Change something\n";
    }
    return(0);
}
4

2 回答 2

10
input == "yes"

要进行比较,您需要使用strcmp函数。==运算符不是比较值而是比较指针。

如果您使用,std::string现有代码将按原样工作。std::string有运算符==重载来进行比较。

我建议使用std::stringover 字符数组。

于 2013-08-13T20:43:33.070 回答
2

==无法比较字符串(它在您的情况下比较内存地址)要么使用 c 函数strcmp或使用 C++std::string

于 2013-08-13T20:43:40.727 回答