C 程序启动参数

C program launch argument

我想输入参数来启动程序 例如:./program -i inputfile -e -b。 我已经完成了下面的代码,但是我有一个问题,参数需要一个选项,例如当我输入 -i inputfile 时它可以工作,但是如果我输入 -e -b 它将采用 -b 作为 [= 的选项14=]。 我还没有找到解决方案,因为它要求我为每个参数输入一个选项

如果你能帮助我,谢谢你

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <getopt.h>

#define OPTSTR "h:b:c:d:e:f:i:l:g:o:r:x:s:Z:z"

int main(int argc, char *argv[]) {
    int opt;
    while ((opt = getopt(argc, argv, OPTSTR)) != EOF) {
        switch(opt) {
            case 'h':
                printf("AIDE POUR LE PROGRAMME");
                break;
            case 'b':
                printf("-b ENTERED");
                break;
            case 'c':
                printf("-c ENTERED");
                break;
            case 'd':
                printf("-d ENTERED");
                break;
            case 'e':
                printf("-e ENTERED");
                break;
            case 'f':
                printf("-f ENTERED");
                break;
            case 'i':
                printf("-i ENTERED");
                break;
            case 'l':
                printf("-l ENTERED");
                break;
            case 'g':
                printf("-g ENTERED");
                break;
            case 'o':
                printf("-o ENTERED");
                break;
            case 'r':
                printf("-r ENTERED");
                break;
            case 'x':
                printf("-x ENTERED");
                break;
            case 's':
                printf("-s ENTERED");
                break;
            case 'Z':
                printf("-Z ENTERED");
                break;
            case 'z':
                printf("-z ENTERED");
                break;
            default:
                printf("Mauvais argument entré ! \n");
                break;
        }
    }
    return 0;
}

在您的选项字符串中,字母后跟 : 表示该选项需要一个参数。如果选项不接受参数,则不要在其后放置 :

#define OPTSTR "h:b:c:d:ef:i:l:g:o:r:x:s:Z:z"
//                       ^-- no colon after "e"