Используйте пользовательский ввод (cin), чтобы вставить его в std :: system и запустить команду с вводом в другом терминале.

Используйте пользовательский ввод (cin), чтобы вставить его в std :: system и запустить команду с вводом в другом терминале.

int main() {
string ip;
cout << "IP to scan: ";
cin >> ip;

std::system(" nmap .... ")

return 0;
}

так что в основном я хочу, чтобы строка ip использовалась в термине гнома, чтобы я мог, например, выполнить сканирование imap для ip, набранного пользователем

-4

Решение

Это легко сделать с помощью форматирования строки:

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());
1

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

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