Это вопрос n00b, но Я пишу инструмент на основе nix и хотел бы иметь флаги verbosity, основанные на количестве переданных vvv. Я бы начал печатать отладочные/информационные инструкции в моя программа.Добавление многословия в программу
Мой вопрос: как я могу использовать opargs для этого, так как optargs может анализировать только один символ за раз.
Также предположим, что я знаю, что я на уровне 3-го уровня, все мои заявления на печать должны быть в состоянии if? Или есть умный способ обойти это, используя предварительный процессор?
Также, если кто-то может указать мне на какой-то код онлайн, который делает это, это было бы потрясающе.
Благодаря
Я полагаю, что это, подумал я пост здесь, если кто-то приходит через это в будущем:
В основном для всех моих различных заявлений многословия я определил специальную печать с помощью препроцессора, как :
#define dprintf \
if (verbosity == 1) printf
Затем я помещаю инструкции в случае необходимости в код, например
dprintf ("Verbosity is at level 1.");
My Opt atgs выглядит примерно так
case 'v':
verbosity++;
break;
Вы пытались использовать свой синтаксический анализ с помощью строки «-vvv»?Как правило, это обрабатывается как «-v -v -v», если есть такая возможность. В противном случае вы всегда можете определить три флага: «-v», «-vv» и «-vvv» и установить уровень отладки с помощью этих. В любом случае, это что-то вроде небольшого трюка. Но вы делаете это только один раз. – HonkyTonk
, можно ли использовать препроцессор для определения специального оператора «print» и использовать его для распечатки подробных параметров? – Falcata
Почему бы не просто '-v1',' -v2', '-v3' и т. Д.? –