我在互联网上看了3个小时,却找不到解决方案。我必须使用接受3个参数m和n和--help的getopt创建一个小程序。我希望能够为m和n编写一个整数作为选项,或者将其保留为没有任何数字。示例:-m打印第一条消息,-n打印第二条消息,-m 1 -n 33在此打印带有数字的m的消息和带有数字的n的消息,--help打印第三条消息

while ((c = getopt (argc, argv, "m:n:help")) != -1)
        switch (c)
          {
          case 'm':
            integer1 = atoid(optarg);
            printf("Hello1 %d", integer1);
            break;
          case 'n':
            integer2 = atoid(optarg);
            printf("Hello2 %d", integer2);
            break;
          case 'help':
           printf("Tutorial");
            break;

          default:
            printf("to be tested");
            break;
          }


那是用数字解析-m和-n的代码,但是我不知道如何在没有数字的情况下实现-m和-n。

最佳答案

如果要支持带有可选参数或长选项的选项,getopt将无法执行您想要的操作。您需要使用getopt_long

关于c - 如何使用getopt(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35489617/

10-12 22:10