c/c++语言开发共享我能正确理解getopt()吗?

我正在尝试扫描命令行中的某些字母,符号和值。 我想扫描"-w" ,一个数字和"-s" 。 我在上一个问题中得到了回复,我被告知要使用getopt() ,经过一段谷歌搜索,我想我可能会得到它,但我不确定。

这就是我认为我在做的事情:

 int c = 0; int b = argv[2]; while((c = getopt(argc, argv, "-w", "-s", b)) 

我想我正在扫描argc中的"-w""-s"argv[2]值(这是数字)。 但我不知道我是否正确使用它?

    你的while循环应该是while ((c = getopt(argc, argv, "w:s:"))

    :冒号意味着它需要一个参数。 现在将optarg转换为整数或任何你想要的。

     int number = 0; int sflag = 0; int opt; while ((opt = getopt(argc, argv, "w:s")) != -1) { switch (opt) { case 's': sflag = 1; break; case 'w': number = atoi(optarg); break; default: /* Report usage and exit? */ break; } } 

    数字的转换是懒惰的; 例如,你可以做一个更小心的工作来调用一个调用strtol()的函数。 您可能需要一个类似于wflag变量设置的sflag变量,以便您可以将-w 0与’命令行中指定的no -w选项’区分开来。

      以上就是c/c++开发分享我能正确理解getopt()吗?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/519251.html

      (0)
      上一篇 2020年12月5日
      下一篇 2020年12月5日

      精彩推荐