【发布时间】:2012-09-18 06:34:06
【问题描述】:
我是 C++ 新手,我正在尝试了解它是如何工作的。 所以我有下一个代码:
int _tmain(int argc, _TCHAR* argv[])
{
std::wcin.get();//for console window input
int i=1;
// decode arguments
if(argc < 2) {
printf("You must provide at least one argument\n");
exit(0);
}
// report settings
for (;i<argc;i++) printf("Argument %d:%s\n",i,argv[i]);
return 0;
}
查看 argc 和 argv 的工作原理。 但无论我在控制台中输入多少参数,argc 都不会增加。 它仍然是 1。 我知道 argv[0] 是程序名称。我的输入类似于:“aaa bbb ccc ddd”。 我相信这个 argc 应该是 5 对吗? 我究竟做错了什么 ?为什么它不会增加?
谢谢。
【问题讨论】:
-
你是如何将这些参数传递给你的程序的?
-
从控制台窗口,当它从 wcin.get() 弹出时;我输入参数,例如“abc efg xyz”。
-
@IonutDaniel 当程序的控制台打开时,命令行参数已经设置好了。到那时为时已晚。
-
@Ionut 这就是问题所在,参数不是那样传递的。看看下面的答案
标签: c++ command-line command-line-arguments argument-passing