我是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对吗? 我究竟做错了什么 ?为什么它不会增加?
谢谢。
答案 0 :(得分:5)
好像你正在使用MSVS(签名为_tmain(int argc, _TCHAR* argv[])
)。如果您正在从IDE运行代码,则需要在项目设置中指定参数,而不是命令行。
从命令行运行,如:
test.exe arg1 arg2
也可以正常使用。你正在做什么不会修改参数。
答案 1 :(得分:2)
调用wcin.get()不会影响argv或argc。参数在程序启动时的最开始指定。它们在命令行中指定,紧跟在程序名称后面,用空格分隔。