【问题标题】:How to use getopt when option is a string on C?如何在选项是C上的字符串时使用getopt?
【发布时间】:2012-12-02 00:18:53
【问题描述】:

我正在为我的大学工作/开发一个 C 程序,调用时可以有 3 个选项(-h 寻求帮助,-o <argument>(有或没有它),最后一个选项可以是一个字符串,如(test- in-1):

./myprogram test-in-1

我必须在我的 main 上处理这些选项,并在调用它们时执行所需的操作。它们都不是强制性的。

我正在考虑使用getopt 来解析选项,但是其中一个选项实际上是string(char *),并且由于getopt 无法读取字符串,因此我有点迷路了,只能读取字符或带参数的字符(据我所知,例如-h-o <argument>)。知道我该怎么做吗?

除了主线之外,我真的不能发布任何代码,因为我在它的开头卡住了(int main(int argc, char *argv[]))

提前感谢您提供正确方向的任何建议/点。

【问题讨论】:

  • this
  • 谢谢!!看起来很容易理解!
  • test-in-1 不是一个选项,它是一个常规参数。 getopt() 和类似的库通常只处理以-(或getopt_long() 中的+)开头的选项。字符串参数留给程序自己处理。

标签: c string getopt


【解决方案1】:

您可以传递一个冒号:,这意味着它需要一个参数,并且该参数将在optarg 中设置。

另见my answer here

【讨论】:

  • 也许我不够清楚,我的问题是选项是一个字符串,而不是选项的参数,周围的教程解释得很好。或者我对 getopt() 完全错误?
  • @mario79 我链接了另一个选项,即 getopt_long()。
【解决方案2】:

如果您要链接到 GNU C 库,请查看 getopt_long

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 2017-05-29
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多