Проблема в том, что в C ++ строковые литералы (такие как "./findName.sh"
) не std::string
, а указатели. Для указателей добавление имеет другое значение, чем конкатенация строк.
Вы можете создать std::string
и использовать его для выполнения конкатенации:
std::string scriptName = "./findName.sh";
std::string command = scriptName + " " + argv[1];
system(command.c_str());
Не забудьте проверить размер argc
чтобы убедиться, что есть аргумент.