0

每个人。我知道有很多相关的线程,但我不能很好地理解它们,所以我决定自己写。

我正在尝试编写一个 Win32 控制台应用程序,这是我想做的:

假设我的名字 app 是:MyApp.exe,所以我希望每次在命令行中输入:

MyApp.exe -W Hello

我的应用在输出中写入“Hello”。与其他论点相同。基本上,我想控制我想要的每一个参数,但我不知道该怎么做。

这就是我所拥有的:

    #include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>

int main(int argc, char *argv [])
{

    int count;


    printf("This program was called with  \"%s\". \n", argv[1]);
    printf("\n");

    system("Pause");

}

我的意思是,我知道每个参数都在 argv 数组中,但我不知道如何解析它,例如:

if(argv[1] == "-W")

这没用。

非常感谢!

4

2 回答 2

0

您不能使用 进行字符串比较==,您需要类似的东西

if (strcmp(argv[1], "-W") == 0)

对于不区分大小写的比较,您需要_stricmp()改用。

请参阅有关字符串操作的 MSDN 文章。

于 2013-08-12T14:50:32.027 回答
0

如果您使用的是 C,请使用以下strcmp函数:

if(strcmp(argv[1], "-W") == 0) { /* the first argument is -W */ }

如果您使用的是 C++,请使用operator==

if(std::string(argv[1]) == "-W") { /* the first argument is -W */ }
于 2013-08-12T14:54:51.293 回答