Программа работает следующим образом, аргумент вначале указывается в такой форме:
-w cat
Строка "cat" хранится впеременная pattern и для каждой буквы, за которой следует - , мы что-то делаем;в этом случае мы устанавливаем mode = W. У меня проблемы с тем, что аргумент имеет вид:
-w -s -n3,4 cat
Теперь я считаю, что, как и раньше, mode устанавливается в W, S и N в порядке чтения.И если я захочу сохранить / запомнить, какой порядок следования букв mode был установлен после завершения цикла, я могу сохранить информацию в массиве.Также, как и должно быть сделано pattern присваивается строка "cat".Поправьте меня, если я ошибаюсь или есть более простой способ сделать это.
Во-вторых, я хочу иметь возможность доступа и сохранения номеров 3 и 4. Я не уверен, как это делается, и яне уверен, что argc - = optind;и argv + = optind;делает.За исключением того, что я думаю, что аргументы хранятся в строковом массиве.
enum MODE {
W,S,N
} mode = W;
int c;
while ((c = getopt(argc, argv, ":wsn")) != -1) {
switch (c) {
case 'w':
mode = W;
break;
case 's':
mode = S;
break;
case 'n':
mode = N;
break;
}
}
argc -= optind;
argv += optind;
string pattern = argv[0];
Обновление: выяснил, как получить доступ к числам, мне просто нужно было посмотреть, что было в argv во время цикла.Так что, я думаю, я просто сохраню найденное значение в другой переменной для использования.