VS2013 带命令行参数的调试问题 解决方案
int main(int argc,char* argv[])
argc是命令行总的参数个数,argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数命令行后面跟的用户输入的参数
比如:
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"
argv[3] = "t.c"
--------------------------------------------------------------------------------------------
argc记录了用户在运行程序的命令行中输入的参数的个数。
arg[]指向的数组中至少有一个字符指针,即arg[0].他通常指向程序中的可执行文件的文件名。在有些版本的编译器中还包括程序
文件所在的路径。
-------------------------------------------------------------------------
好了,解释完这个。就有人问了,在调试的时候怎么输入参数呢,参数文件不在同一个文件夹下面怎么办?
其实很简单的就可以处理了,我提供两种方法:
第一种:
无需调试的情况:
直接用dos命令进入到***.exe目录下然后输入: ***.exe pra1 pra2
第二种:
需要调试的情况:
i.先选择项目-〉右键-〉属性
ii.调试 -〉命令行参数
在命令行参数里面输入命令行参数即可。
需要注意的是,不需要像第一种那样样输入***.exe了。只需要输入 pra1 pra2 ,中间用空格隔开。