如果我不在命令提示符中输入 ARGC 值,它是如何初始化的?
How is the ARGC value initialized if I don't enter it in the command prompt?
当我运行下面的代码:
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,所以退出。
如果我注释掉 exit (-1) 行,我会得到一个断言错误。
我认为因为 ARGC 不是 2,所以我的程序不会 运行 或继续。如何将 argc 初始化为 2 并使程序 运行 在我什至无法正确看到命令提示符之前退出。
如何让命令提示符保留并提供两个输入,以便 argc == 2?
argc
取自您在命令提示符下键入的内容。这里没有足够的信息来查看可执行文件的名称,但我们假设 foo
。那么
% foo # argc == 1
% foo banana # argc == 2, etc.
您似乎没有给出任何命令行参数,这就是为什么您在 argc 和 argv 中什么也得不到的原因。
好吧,您可以提供任意数量的命令行参数。如果您使用的是 Visual Studio,请转到项目属性 -> 调试。在那里你可以看到一个盒子"Command line arguments"想给多少就给多少
当我运行下面的代码:
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,所以退出。 如果我注释掉 exit (-1) 行,我会得到一个断言错误。 我认为因为 ARGC 不是 2,所以我的程序不会 运行 或继续。如何将 argc 初始化为 2 并使程序 运行 在我什至无法正确看到命令提示符之前退出。
如何让命令提示符保留并提供两个输入,以便 argc == 2?
argc
取自您在命令提示符下键入的内容。这里没有足够的信息来查看可执行文件的名称,但我们假设 foo
。那么
% foo # argc == 1
% foo banana # argc == 2, etc.
您似乎没有给出任何命令行参数,这就是为什么您在 argc 和 argv 中什么也得不到的原因。
好吧,您可以提供任意数量的命令行参数。如果您使用的是 Visual Studio,请转到项目属性 -> 调试。在那里你可以看到一个盒子"Command line arguments"想给多少就给多少