LINUX.ORG.RU

Си квесчин по аргументам...


0

0

у меня в программе принимаются аргументы cli вот таким вот лесом ифов в цикле...

while(argv[i] != NULL){
if(strcmp(argv[i] , "-w") == 0){
usage(argv[0]);
}
...etc...
}

возникла необходимость модифицировать формат ввода данных, если раньше это был просто ключ и значение, то теперь я думаю читать новое значение sprintf'om, но старое хотелось бы оставить ибо пока не представляю как лучше это переделать. И так, спринтфом мне нужно получать несколько значение, например...
было раньше просто
-h 1
теперь нужно указывать промежуток
-h 100-1000
как сринтфом разбить строку на массивы знаю, вопрос в другом, как мне с каждым полученным значением из нового промежутка 100-1000 юзать остальные значения которые были получены просто usage(argv[(элемент)])

anonymous

Может подойдет такой вариант:

// ...
if(strcmp(argv[i], "-w") == 0) {
   if(2 == sscanf(argv[i + 1], "%d-%d", &min, &max)) {
      // do something.
      break;
   }
   else if(1 == sscanf(argv[i + 1], "%d", &var)) {
      // do something.
      break;
   }
}

andreyu ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.