在c中解析命令行参数,不带空格

时间:2017-03-16 23:55:53

标签: c command-line

我有一个使用while循环解析命令行参数的程序。简单地说,在遍历argc的长度时,如果参数匹配标志而不是下一个参数被视为变量。现在,在我的任务中,我们被要求以一种方式执行此操作,即标志和整数参数之间的空格是可选的。

例如,如果我输入-k1,它与-k 1相同,1是存储的值。 我发现任何不允许这样的东西。我唯一能想到的是,如果argc是偶数,则意味着在一组参数之间没有朋友,我可以使用scanf(“ - k%d”,key)。

对我来说有什么有用的指示?

1 个答案:

答案 0 :(得分:1)

在POSIX兼容的操作系统中,您可以使用标准API:man getopt。它将完成所有脏工作来解析参数,并为您提供方便的界面来处理。

以下是一个很好的例子:http://www.gnu.org/software/libc/manual/html_node/Example-of-Getopt.html#Example-of-Getopt