【问题标题】:Command-line options in C [closed]C中的命令行选项[关闭]
【发布时间】:2012-12-28 22:59:46
【问题描述】:

我想创建一个接受形式参数的 C 程序

-aK

其中 K 是 0-9 之间的某个整数。

我将如何解析/指定此选项?

【问题讨论】:

  • 使用getopt ?还是bsd-getopt_long
  • 你知道 gnu getopt() 吗?
  • 使用getopt后,尝试接受超过18% ;-)

标签: c command-line-arguments getopt getopt-long


【解决方案1】:

您可能想查看getopt 和/或getopt_long

【讨论】:

    【解决方案2】:

    这样的简单需求可以通过 getopt 解决。

    你也可以这样做:

     #include <stdio.h>
     #include <string.h>
     int main(int argc, char *argv[])
     {
        char ch, a;
        int d;
        if(argc == 1) return;
        if(argc == 2){
           if(strlen(argv[1]) > 2){
           sscanf(argv[1],"%c%c%d",&ch,&a,&d);
           if(ch == '-' && a == 'a'){
              printf("%d is your number",d);
          }
        }
       }
       return 0;
     }
    

    【讨论】:

    • @VladLazarenko 至少 Aniket 给出了答案,而不是你,他只是编辑和投票
    • 我不是反对者,但它没有任何边界检查或解析检查。该程序可能会崩溃。
    • @VladLazarenko 解释为什么它很糟糕?
    • @MasoudM。显然,这是概念验证,而不是生产质量。我当然会使用 getopt 并进行各种边界检查
    • @Aniket 好吧,你只是给了自己一个提示,为什么这是一个糟糕的例子bound checking
    猜你喜欢
    • 2014-01-12
    • 2010-09-20
    • 2013-10-04
    • 1970-01-01
    • 2014-04-16
    • 1970-01-01
    • 2017-01-20
    • 2013-12-28
    • 2011-09-24
    相关资源
    最近更新 更多