大家。我知道有很多相关的线程,但我不能很好地理解它们,所以我决定写自己的。
我正在尝试编写Win32控制台应用程序,我想这样做:
假设我的名字应用程序是: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")
它不起作用。
非常感谢!
答案 0 :(得分:0)
你不能使用==
进行字符串比较,你需要像
if (strcmp(argv[1], "-W") == 0)
对于不区分大小写的比较,您需要使用_stricmp()
代替。
请参阅String Manipulation上的这篇MSDN文章。
答案 1 :(得分: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 */ }