argc是命令行总的参数个数 ,argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数命令行后面跟的用户输入argc是命令行总的参数个数
比如:
int main(int argc, char* argv[])
{
int i;
for (i = 0; i<argc; i++)
cout<<argv[i]<<endl;
cin>>i;
return 0;
}
执行时敲入
F:\MYDOCU~1\TEMPCODE\D1\DEBUG\D1.EXE aaaa bbb ccc ddd
输出如下:
F:\MYDOCU~1\TEMPCODE\D1\DEBUG\D1.EXE
aaaa
bbb
ccc
ddd
---------------------------------------------------------------------------------------------------------------------------
char *argv[]是一个字符数组,其大小是int argc,主要用于命令行参数 argv[] 参数,数组里每个元素代表一个参数;比如你输入:
test a.c b.c t.c
则
argc = 4
argv[0] = "test"
argv[1] = "a.c"
argv[2] = "b.c"
比如:
---------------------------------------------------------------------------------------------------------------------------
char
转自:int main(int argc,char* argv[])详解
调试《Mastering OpenCV with Practical Computer Vision Projects》中trainSVM.cpp的效果:
由于之前自己路径写错了,导致用命令行运行出错,转而求其次,打算不使用命令行看调试的效果,于是打算在主函数里对argc和argv等参数进行直接赋值,如下图,调试效果是一样的: