Флаги программы C ++

Я пишу программу на C ++, а компилятор — G ++

Теперь в терминале, если я наберу ./main и введу его, он запустится.

И все же я хочу добавить что-то вроде флага: ./main -apple или ./main -orange

яблоко и апельсин — два разных метода для расчета одной и той же задачи. Как мне это сделать?

Я имею в виду, что когда мы работаем с Linux, мы обычно можем набрать dash sth, как это работает и что мне делать в моей программе?

Любой пример или ссылка?

Заранее спасибо!

-7

Решение

int main(int argc, const char* argv[]) {
for(int i = 0; i < argc; ++i) {
// argv[i] contains your argument(s)
}
}

Еще несколько деталей:

Принятие аргументов, переданных вашей программе, может быть сделано путем добавления двух аргументов в main: Один int, которому присваивается количество аргументов, которые вы даете своей программе, и один const char* [], который является массивом C строк.

Один пример: скажем, у вас есть программа main который должен реагировать на аргументы apple а также orange, Звонок может выглядеть так: ./main apple orange, argc будет равно 3 (считая «main», «apple» и «orange»), и итерация по массиву даст 3 строки.

// executed from terminal via "./main apple orange"#include <string>
int main(int argc, const char* argv[]) {
// argc will be 3
// so the loop iterates 3 times
for(int i = 0; i < argc; ++i) {

if(std::string(argc[i]) == "apple") {
// on second iteration argc[i] is "apple"eatApple();
}

else if(std::string(argc[i]) == "orange") {
// on third iteration argc[i] is "orange"squeezeOrange();
}

else {
// on first iteration argc[i] (which is then argc[0]) will contain "main"// so do nothing
}
}
}

Таким образом, вы можете выполнять задачи в соответствии с аргументами приложения, если вы хотите только сжать апельсин, просто введите один аргумент, например ./main orange,

4

Другие решения


По вопросам рекламы [email protected]