命令行参数不是incrementinc argc

Ion*_*iel 1 c++ command-line argument-passing command-line-arguments

我是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;
}
Run Code Online (Sandbox Code Playgroud)

了解argc和argv是如何工作的.但是,无论我在控制台中输入多少个参数,argc都不会增加.它仍然是1.我知道argv [0]是程序名.我的输入类似于:"aaa bbb ccc ddd".我相信这个argc应该是5对吗?我究竟做错了什么 ?为什么它不会增加?

谢谢 .

Luc*_*ore 5

看起来你正在使用MSVS(签名存在_tmain(int argc, _TCHAR* argv[])).如果您正在从IDE运行代码,则需要在项目设置中指定参数,而不是命令行.

在此输入图像描述

从命令行运行,如:

test.exe arg1 arg2
Run Code Online (Sandbox Code Playgroud)

也会正常工作.你正在做什么不会修改参数.