У меня есть программа, которая должна принимать несколько аргументов командной строки. Я дошел до стадии, где мне нужно настроить его для принятия аргумента n, который определяет максимальную и минимальную длины строки, которая в конечном итоге будет напечатана. В основном вход может выглядеть следующим образом:C++ Принятие аргумента командной строки с параметрами
-a -n7,7 -i // with -a and -i being other arguments
Я в порядке с выбирая аргументы сами по себе, но я не уверен, как срывать эти максимальные и минимальные значения тоже. У меня был переход (см. Ниже), но всякий раз, когда я пытаюсь использовать переменные как минимум и максимум, я просто получаю ошибку времени выполнения. Привет, ребята.
int c;
while ((c = getopt(argc, argv, ":wpsaevin")) != -1) {
switch (c) {
case 'w': // pattern matches whole word
mode = WHOLE;
break;
case 'p': // pattern matches prefix
mode = PREFIX;
break;
case 'a': // pattern matches anywhere
mode = ANYWHERE;
break;
case 's': // pattern matches suffix
mode = SUFFIX;
break;
case 'e': // pattern matches anywhere
mode = EMBEDDED;
break;
case 'v': // reverse sense of match
reverse_match = true;
break;
case 'i': // ignore case of pattern
ignore_case = true;
break;
case 'n': //Specifies word length
length_spec = true;
cin >> minimum >> maximum;
if (minimum == 0 && maximum == 0) { //no word limit
length_spec = false;
} else if (maximum == 0) {
maximum = 100;
}
break;
}
}
argc -= optind;
argv += optind;
Я знаю, что не все хотят загружать boost, но я должен сказать, что boost_program_options собирается сделать этот 10000x более универсальным и менее подверженным ошибкам, если вы не возражаете, я бы опубликовал ответ с этим – aaronman
'cin' читает от консоль, которая почти наверняка не то, что вы хотите. Если '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' находятся в командной строке после '-n', то местом для их получения является' argv [whatever] ' –
Ха-ха, всякий раз, когда у меня возникает вопрос, люди всегда говорят мне, что есть более простые способы сделать это. К сожалению, я выполняю большую часть своей работы за задания, у которых есть спецификации, как мы должны заниматься вещами. – user2773084