getopt如何设置默认值

时间:2018-02-28 04:02:04

标签: c getopt

 <application
              android:label="@string/app_name">

基本上,如果没有输入,我想要-w。

考虑这些用例

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


int main(int argc, char **argv) {
    int o;
    int w = 10;

    while ((o = getopt(argc, argv, "w")) != -1) {
        switch (o) {
            case 'w' :
                w = atoi(optarg);
                break;



        }

    }
    printf("%d\n", w);
}

我不能让第二个工作。有什么方法可以玩getopt来获得预期的结果吗?

1 个答案:

答案 0 :(得分:3)

假设您正在使用GNU getopt,以下内容应该有效:

    while ((o = getopt(argc, argv, "w::")) != -1) {
        switch (o) {
            case 'w' :
                if (optarg) {
                    w = atoi(optarg);
                }
                break;

以下:将该选项标记为需要参数。双:使参数可选(这是GNU扩展)。如果没有参数,optargNULL