作者最近有一个人物是要用C++开发一个文件解析用的App,待解析的文件作为应用程序的参数传递给应用程序,使用起来类似于带参数的脚本。
C++中如何给应用程序传递参数呢,可以把main函数做如下声明:
void man(int argc,char* argv[])
或者void main(int argc,char ** argv)
char* argv[] -- 指针数组,保存指向char字符串的指针
char** argv -- char* argv[] 中的argv要怎么表示呢?argv本身就是一个指针常量,保存该,则char* const p = argc,则argc[0],可以用p[0]表示。
第一个参数代表包含应用程序名字在内的参数个数,第二个参数代表传递给应用程序的参数列表,使用空格进行分割,例如
test.exe aa bb cc
则argc == 4
argc代表包含应用程序名在内的函数参数的个数,这里一共是4个,argv[]数组是包含应用程序名在内的参数数组,应用程序名包含绝对路径。
我在网上找到了一个实例,代码如下
#include<stdio.h>
int main(int argc, char *argv[])
{
if(argc < 2) {
fprintf(stderr, "请输入ip参数, 如:test 192.168.1.1.\n");
return 1;
}
//后面对ip有效性进行判断
printf("ip=%s\n", argv[1]);
return 0;
}
运行结果如下