【问题标题】:setting up char** argv in code在代码中设置 char** argv
【发布时间】:2012-10-16 21:33:06
【问题描述】:

所以我有一个以

开头的名为 prog.exe 的程序
int main(int argc, char** argv)

我传递给它的参数是

prog.exe news-rec

或 prog.exe news-rec -t -p

如何在代码中配置这些参数的值,这样我就不必从命令行运行程序了。

例如对于

prog.exe news-rec

我认为 argc = 1 但我将如何配置 argv 它会是什么? 我试过做

argv[0] = "news-rec";

但这不起作用

【问题讨论】:

    标签: c++ visual-c++ argv


    【解决方案1】:

    因为argv[0] 包含可执行文件本身的名称。试试

    argc = 2;
    argv[1] = "news-recc";
    

    【讨论】:

    • @AdamZedan 如果您至少提供了一些关于这个神秘的“不工作”的背景,我们将更容易推断出问题所在并因此为您提供帮助。
    • argc 将递增,因为第一个计数用于 exe 名称。
    • @AdamZedan 太棒了。还要感谢 Abhineet。如果这可行,如果您接受我的回答,我将不胜感激。
    • @H2CO3- 我们都在这里提供帮助。我的荣幸。 :-)
    • @MihaiTodor 操作系统设置了它。而且它不能真正扩展。
    【解决方案2】:

    您不需要在命令行参数中提供 prog.exe,因为 exe 名称始终是 argv[0] 即第一个参数。除此之外,您可以根据需要在 argv 中存储任意数量的参数,例如::

    argv[1] = "new-rec" ;
    argv[2] = "-t" ;
    argv[3] = "-p" ;
    

    等等……

    从标签中假设你正在使用 Visual Studio,你可以尝试::

    Project Tab->Properties->Configuration Properties->Debugging 然后在右边的(Command Arguments)下输入你要传递的参数排除 prog.exeargc 将自动计算您传递的参数数量。

    【讨论】:

      猜你喜欢
      • 2014-01-19
      • 2011-07-08
      • 2018-07-18
      • 2022-07-14
      • 1970-01-01
      • 2010-10-21
      • 2015-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多