比较argv和L"测试"不工作

时间:2015-08-25 20:22:41

标签: c++

所以我在这里

if(argv[0] == L"test") {
    cout << "it is test";
}
else {
    cout << "Nope."
}

它始终显示&#34; Nope。&#34;我不知道我做错了什么......我尝试过不同的方式,但他们都以同样的方式结束。

3 个答案:

答案 0 :(得分:3)

更像C ++的解决方案将是:

#include <string>
#include <iostream>

using namespace std;

int main(int argc, wchar_t* argv[])
{
    if (argv[0] == wstring(L"test")) {
        cout << "it is test";
    }
    else {
        cout << "Nope.";
    }

    return 0;
}

答案 1 :(得分:1)

您可以使用wcscmp()。

你的主要功能必须为argv [0]传递宽字符,如下所示:

int main(int argc, wchar_t*argv[])

然后你可以这样做:

 if (wcscmp(argv[0], L"test"))

答案 2 :(得分:0)

您需要使用strcmp,因为argvchar*的数组。

您的代码会比较指针而不是字符串内容。