1

我是 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 对吗?我究竟做错了什么 ?为什么它不会增加?

谢谢 。

4

2 回答 2

5

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

在此处输入图像描述

从命令行运行,如:

test.exe arg1 arg2

也将正常工作。你在做什么不会修改论点。

于 2012-09-26T15:21:24.493 回答
2

调用 wcin.get() 不会影响 argv 或 argc。参数在程序启动时一开始就指定。它们在命令行上指定,紧跟在程序名称之后,用空格分隔。

于 2012-09-26T15:21:40.793 回答