У вас все неправильно.Вы перебираете символы, а не массив параметров.Вы можете сделать это следующим образом:
for(auto arg = argv + 1; *arg; ++arg)
{
std::cout << (*arg) << '\n'; // *arg is a char*
}
Это работает, потому что аргументы (если таковые имеются) начинаются с argv + 1
и потому что они имеют нулевое окончание , так что *arg
равно nullptr
(преобразуется в false
) в конце массива аргументов.
Ваши аргументы получаются путем разыменования arg
с использованием *arg
, что является char*
.
Так что выможно сделать:
if(!std::strcmp(*arg, "--help"))
print_help_info();