Могу ли я попросить пользователя повторно ввести аргумент командной строки

main(int argc, char *argv[])
{
if(argc != 3) {
printf("Invalid number of arguments\n");
exit(1);
}}

Здесь я прямо покидаю программу, если подсчитывать не соответствует требуемому количество аргументов.

Есть ли способ попросить пользователя повторно ввести аргументы командной строки, если количество аргументов не соответствует количеству? Я имею в виду без выход из программы ..

2

Решение

Пытаться:

#include <iostream>
#include <string>
std::string askUser(std::string const& question)
{
std::cout << question << "\n";

std::string result;
std::getline(std::cin, result);

return result;
}
int main(int argc, char* argv[])
{
std::string  arg1;
std::string  arg2;
std::string  arg3;

arg1   = (argc > 1) ? std::string(argv[1]) : askUser("Please Enter Arg1");
arg2   = (argc > 2) ? std::string(argv[2]) : askUser("Please Enter Arg2");
arg3   = (argc > 3) ? std::string(argv[3]) : askUser("Please Enter Arg3");
}
2

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector