Я пытаюсь разработать механизм оценки на 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
Как очистить этот фрагмент C++ от аргументов командной строки? [дубликат] ⇐ Linux
1711243742
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[i]);
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;
Подробнее здесь: [url]https://stackoverflow.com/questions/78213111/how-can-i-clean-up-this-c-snippet-for-command-line-arguments[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия