当用户在c编程中使用getopt输入两个选项而不是一个时,如何打印错误消息?

时间:2015-11-22 01:36:10

标签: c getopt

用户提供了一个选项。如果他同时输入-d -e,则应打印一条错误消息,指出-d并且-e无法一起设置然后退出。

while ( ( option = getopt (argc, argv, "hd:e:") ) != -1 ){

    switch ( option ) {

        case 'd':
        dflag = 1;
        key = optarg;
        break;

        case 'e':
        eflag = 1;
        key = optarg;
        break;

        case 'h':
        hflag = 1;
        break;

        default:
        perror ( "" );
        printf("default\n");
        display_usage ( argv [0] , OPTIONS );
        exit ( EXIT_FAILURE );

    } /* end switch */
} /* end while */

1 个答案:

答案 0 :(得分:1)

while阻止后,添加:

if (dflag && eflag) {
    printf("error\n");
    exit(EXIT_FAILURE);
}

另外,在进入dflag循环之前,请确保将eflagwhile和其他变量(根据需要)初始化为0。