2 hchchc6016 hchchc6016 于 2016.04.13 13:59 提问

c++main函数的命令行参数问题

int main(int argc,char *argv[]);
函数从命令行读取参数
1.是不是只有生成了test.exe文件之后才能从命令行读取参数(因为我看见 好多都是在命令行输入test.exe后面再加一些参数这样子的),也就是说 我还在调试阶段就不能从命令行输入参数?
2.没有从命令行输入参数的时候,argc=1,*argv[0]是程序的路径的名称,如果main后面的括号里面没有东西,是不是意味着我不能在命令行里运行他,因为找不到路径?

3个回答

u010925938
u010925938   2016.04.13 14:19
已采纳

1.如果你是在DOS窗口下运行程序下的话,需要你生成.exe程序后,执行,形如:*.exe arg1 arg2,这是一种从主函数中读取命令行参数的方法。其实你也可以直接在项目属性中设置,设置主函数要接收的参数,以vs2013为例,工程-》属性-》配置属性-》调试,在右侧有一个命令参数,你可以将主函数要接收的参数,写进行,中间以空格分开。注意,这里的参数没有*.exe。直接写arg1,arg2。
2.如果你的main函数没有写成int main(int argc,char *argv[]);这种形式,那么主函数就不能接收函数参数。
总之,如果要接收函数参数,则必须要这么写int main(int argc,char *argv[]);

CSDNXIAOS
CSDNXIAOS   2016.04.13 14:02

很多时候我们的程序需要从外部获取一些运行时的参数,比如我的主程序 去调用另外一个exe或者其他的程序,在调用外部可执行程序的时候,一般我们都需要传入一些参数。 那么在我们的外部程序 如何来获取传入的参数呢?
   下面我们来看一下: 
   在WinMain函数的主函数中,已经传入了一个参数 LPTSTR    ......
答案就在这里:关于Main函数的命令行参数
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

oyljerry
oyljerry   Ds   Rxr 2016.04.13 18:33

调试的时候,你可以在编译器的debug选项中填上你希望的调试参数,这样调试的时候,就会收到这个参数给你来调试

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!