Я начинающий программист на C ++, пытающийся проверить параметры / параметры, передаваемые программе.
В программу может быть передано несколько аргументов, однако я хочу проверить, что если определенные аргументы передаются, другие аргументы становятся недействительными.
например, PGM принимает arg (1) arg (2) arg (3) arg (4) arg (5) и т. Д ...
если arg (1) и arg (2)предоставляются, тогда arg (3), arg (4) и arg (5) и т. д. являются недействительными, и программа должна завершиться с сообщением об ошибке, если они также поставляются вместе с arg (1) и arg (2).
Я думал, что использование логических тестов IF было бы хорошим способом проверить, являются ли определенные значения истинными / ложными.
Я искал в stackoverflow, но не нашел ответ, который точно соответствует тому, что япытаюсь сделать.Если кто-то может указать мне правильное направление или предложить более эффективный способ сделать это, я был бы очень признателен.
Мой код в настоящее время выглядит следующим образом:
bool opt1 = false;
bool opt2 = false;
bool opt3 = false;
bool opt4 = false;
bool opt5 = false;
for(int i=1; i<argc; i++) {
char *str = argv[i];
if (strcmp (str, "-opt1:")==0) {opt1 = true;}
else if (strcmp (str, "-opt2:")==0) {opt2 = true;}
else if (strcmp (str, "-opt3:")==0) {opt3 = true;}
else if (strcmp (str, "-opt4:")==0) {opt4 = true;}
else if (strcmp (str, "-opt5:")==0) {opt5 = true;}
}
if((opt1) && (opt2) && (~(opt3)) && (~(opt4)) && (~(opt5)) {
** DO SOMETHING **
} else {
** DISPLAY ERROR MESSAGE AND USAGE TEXT **
}