处理多个程序参数,但在 C

问题描述

我在弄清楚如何合理地考虑在可以使用的情况下给出了哪些可用参数时遇到了问题,但还有一个可选参数,之后可以给出一个强制性参数。它特别是关于 C 中的 getopt。示例:我有一个带有参数 -a -b -c 和可选 -d 的程序。只能使用前三个中的一个。通常我会这样做:

while ((opt = getopt(argc,argv,OPTSTR)) != EOF)
{
    switch (opt)
    {
    case 'd':
        optional_flag = 1;
        break;

    case 'a':
        if (!mandatory_flag)
            mandatory_flag = 1;
        else
            usage_prompt(argv[0]);
        break;

    case 'b':
        if (!mandatory_flag)
            mandatory_flag = 1;
        else
            usage_prompt(argv[0]);
        break;

    case 'c':
        if (!mandatory_flag)
            mandatory_flag = 1;
        else
            usage_prompt(argv[0]);
        break;

现在的问题是我只是检查是否给出了可选参数,以及是否没有给出许多强制参数。我可以为每个选项使用一个单独的标志,但是对于许多参数来说会很烦人。有没有更好的解决方案来保持逻辑但也知道给出了哪个参数?我正在考虑另一个开关,我将能够在其中运行适当的功能

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)