如何从命令行解析key = value到C程序

时间:2012-01-26 11:21:25

标签: c getopt

我在学术界工作,我用C编写计算代码。我想以类似

的方式执行我的程序
$ ./foo.exe n=20 f=0.25 name=data.bin

我已经完成了关于getopt()getsubopt()的一些阅读,但它似乎使用这些函数来组织命令行,如

$ ./foo.exe -n 20 -f 0.25 -name data.bin

key = val样式更适合我的应用程序,因为大多数参数都是数字。是否可以从命令行参数中提取key = val模式?有没有图书馆可以做到这一点?

非常感谢。

1 个答案:

答案 0 :(得分:0)

如果你的'='周围没有空格,那就很容易了:

char letter;
float value;
if (sscanf(argv[i], "%c=%f", &letter, &value) == 2)
{
    // process option
}
else
{
    // argument doesn't match x=n pattern.
}