Как очистить этот фрагмент C++ от аргументов командной строки? [дубликат]Linux

Ответить
Anonymous
 Как очистить этот фрагмент C++ от аргументов командной строки? [дубликат]

Сообщение Anonymous »

Я пытаюсь разработать механизм оценки на C++ для разработки практик по устранению уязвимостей, но прошло несколько лет с тех пор, как я в последний раз касался C++, не могли бы вы, ребята, помочь мне очистить эту кучу операторов if, else if или мне стоит оставить все как есть. Все предложения приветствуются.
Я попробовал оператор переключения регистра, поскольку последние несколько лет много работал с Python и Bash, но вспомнил, что C++ поддерживает только целые числа для операторов регистра. , мне было интересно, возможно, мне следует использовать сопоставления и включить случаи переключения, или это сделает код менее читабельным.
#include

struct commandLineArgs {
const char* filePath = "./tmp.yaml";
bool silenceOutput = false;
std::string runType = "";

void parseArgs (int argc, char *argv[]){
if (argc > 1){
for (int i = 1; i < argc; i++){
std::string argumentValue = std::string(argv);

if (argumentValue == "--debug" || argumentValue == "-d"){

}
else if ((argumentValue == "--path" || argumentValue == "-p") && i+1 < argc){
filePath = argv[i+1];
}
else if (argumentValue == "--help" || argumentValue == "-h"){

}
else if (argumentValue == "--quiet" || argumentValue == "-q"){
silenceOutput = true;
}
else if (argumentValue == "check" || argumentValue == "s"){
runType = "check";
}
else if (argumentValue == "score" || argumentValue == "c"){
runType = "score";
}
else if (argumentValue == "readme" || argumentValue == "rd"){
runType = "readme";
}
else if (argumentValue == "encrypt" || argumentValue == "e"){
runType = "encrypt";
}
else if (argumentValue == "prompt" || argumentValue == "p"){
runType = "prompt";
}
else if (argumentValue == "info" || argumentValue == "i"){
runType = "info";
}
else if (argumentValue == "version" || argumentValue == "v"){
runType = "version";
}
else if (argumentValue == "release" || argumentValue == "r"){
runType = "release";
}
}
}
}
} cmdArgs;


Подробнее здесь: https://stackoverflow.com/questions/782 ... -arguments
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»