Используйте пользовательский ввод (cin), чтобы вставить его в std :: system и запустить команду с вводом в другом терминале.
int main() {
string ip;
cout << "IP to scan: ";
cin >> ip;
std::system(" nmap .... ")
return 0;
}
так что в основном я хочу, чтобы строка ip использовалась в термине гнома, чтобы я мог, например, выполнить сканирование imap для ip, набранного пользователем
Это легко сделать с помощью форматирования строки:
int main() // ; << Note this is wrong!
{
string ip;
cout << "IP to scan: ";
cin >> ip;
std::ostringstream os;
os << "nmap " << ip;
std::system(os.str().c_str());
// return 0; isn't necessary
}
Чтобы запустить эту команду в другом окне терминала, вы должны вызвать программу терминала с помощью system()
Шефф упомянул в своем комментарии
os << "gterm -e \"nmap " << ip "\"";
std::system(os.str().c_str());
Других решений пока нет …