Linux系统下C++有自带的获取主函数main命令行参数的函数getopt,但在Windows系统下并没有这样的系统函数存在,不用担心,我们可以自行编写。
实例:
Project名称test
int nic_option = -1;
char cont_optin = '0';
char destIP_option[16] = { 0 };
int getopt(int argc, char *argv[])
{
// "i:r:d:"
for (int i = 1; i < argc; i++)
{
if (!strcmp(argv[i], "-i")) // 获取整形数据
nic_option = atoi(argv[i + 1]);
if (!strcmp(argv[i], "-r")) // 获取字符串或数组
sprintf(destIP_option, "%s", argv[i + 1]);
if (!strcmp(argv[i], "-d")) // 获取字符
cont_optin = atoi(argv[i + 1]);
}
return 1;
}
// 主函数
int main(int argc, char *argv[])
{
if (getopt(argc, argv) == -1)
return -1;
else
return -1;
}
编译后生成test.exe
比如在cmd窗口输入: test.exe -i 0 -r 127.0.0.1 -d a
执行结果为:
nic_option = 0;
char cont_optin = ‘a’;
char destIP_option[16] =”127.0.0.1”;