如果我没有在命令提示符中输入ARGC值,ARGC值是如何初始化的?

时间:2016-01-20 16:20:13

标签: c++ exit argc

当我运行以下代码时:

void main(int argc, char** argv)
{

    if (argc != 2){
        fprintf(stderr, "Usage: %s video-dir-path\n", argv[0]);

        exit(-1);
    }


    XFishTracker ft(argv[1]);

    int id = 0;

    while (true)
    {
        id++;
...
...

它退出,因为ARGC的值显然不是2。 如果我注释掉退出(-1)行,我会得到一个ASSERTION ERROR。 我认为因为ARGC不是2,我的程序不运行或继续。如何将argc初始化为2并使程序运行,当它退出之前我甚至可以正确地看到命令提示符。

如何使命令提示符保持不变并输入两个输入,以便argc == 2?

2 个答案:

答案 0 :(得分:1)

argc取自您在命令提示符下键入的内容。这里没有足够的信息来查看可执行文件的名称,但是让我们说foo。然后

% foo # argc == 1
% foo banana # argc == 2, etc.

答案 1 :(得分:0)

看来你没有给出任何命令行参数,这就是为什么你在argc和argv中什么都没有。

您可以提供任意数量的命令行参数。如果您使用的是Visual Studio,请转到项目属性 - >调试。在那里你可以看到一个框“命令行参数”给你想要的颜色