int main(int argc, char *argv[])
{
cout << strcmp(argv[1], "id");
return 0;
}
它返回false。我错过了什么?为什么在命令行参数上的字符串比较不起作用?
谢谢我得到它的工作,将在4分钟内接受答案。
int main(int argc, char *argv[])
{
cout << strcmp(argv[1], "id");
return 0;
}
它返回false。我错过了什么?为什么在命令行参数上的字符串比较不起作用?
谢谢我得到它的工作,将在4分钟内接受答案。
strcmp
返回0,如果C字符串被比较是相等的。 0 == false
,所以它实际上工作。
if(argc == 2 && strcmp(argv [1],“id”))我使用它像 ai.exe id 但是这段代码没有得到执行。 – Ren
'if(argc == 2 &&!strcmp(argv [1],“id”))' –
您是否真的看过我的回答?你做的恰恰相反。 – mfontanini
这将是比较容易通过仅仅输出的argv开始[1]:
cout << argv[1] << endl;
然后你可以看到你在argv [1]上获得的价值,并从那里获得。你的代码没有问题,所以我猜测你没有正确配置你的IDE来传递正确的argv [1]参数。
正如上面评论,你应该得到0,而不是一个虚假的,但。
你怎么从命令行调用程序 – Satya
你应该经常检查一个程序是否获得了参数。 – mikithskegg