如果我不在命令提示符下输入 ARGC 值,如何初始化它?

How is the ARGC value initialized if I don't enter it in the command prompt?

本文关键字:初始化 ARGC 命令提示符 输入 如果      更新时间:2023-10-16

当我运行以下代码时:

void main(int argc, char** argv)
{
    if (argc != 2){
        fprintf(stderr, "Usage: %s video-dir-pathn", argv[0]);
        exit(-1);
    }

    XFishTracker ft(argv[1]);
    int id = 0;
    while (true)
    {
        id++;
...
...

它退出,因为 ARGC 的值显然不是 2。如果我注释掉退出 (-1) 行,则会出现断言错误。我认为因为 ARGC 不是 2,所以我的程序无法运行或继续。如何将 argc 初始化为 2 并使程序运行,当它退出时,我什至无法正确看到命令提示符。

如何使命令提示符停留并提供两个输入,以便 argc == 2?

argc

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

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

似乎您没有给出任何命令行参数,这就是为什么您在 argc 和 argv 中一无所获的原因。

好吧,您可以给出任意数量的命令行参数。如果您使用的是 Visual Studio,请转到项目属性 -> 调试。在那里你可以看到一个框"命令行参数"给尽可能多的

你想要的