как разобрать key = val для программы на C из командной строки - PullRequest
0 голосов
/ 26 января 2012

Я работаю в академической среде и пишу свои вычислительные коды на 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 голосов
/ 26 января 2012

Если у вас нет пробелов вокруг '=', тогда это довольно просто:

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