C 如何使用getopt()

C 如何使用getopt(),c,C,这是3个小时,我在互联网上寻找,我找不到一个解决方案。我必须使用getopt创建一个小程序,它接受3个参数m和n以及--help。我希望能够为m和n写一个整数作为选项,或者不带任何数字。示例:-m打印第一条消息,-n打印第二条消息,-m 1-n 33此处打印一条消息,其中m用数字表示,n用数字表示,-help打印第三条消息 while ((c = getopt (argc, argv, "m:n:help")) != -1) switch (c) {

这是3个小时,我在互联网上寻找,我找不到一个解决方案。我必须使用getopt创建一个小程序,它接受3个参数m和n以及--help。我希望能够为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\u long

第一次使用Google
c getopt
:您的代码不接受
--help
作为参数,它接受
-h
-e
-l
-p
作为参数。此外,
'help'
不是字符串,而是(奇怪的是)一个32位整数,其在内存中的表示形式将包含这些字符。
getopt
既不支持像
--help
这样的长选项,也不支持带有可选参数的选项。因此没有教程网站。我已经查看了gnu.org网站,但它更混乱。再一次,我不知道如何使用get opt,例如-n是否有数字。