使用(cin)用户输入将其粘贴到std :: system中,并在另一个终端中运行带有输入的命令

时间:2018-08-20 10:19:34

标签: c++ c++11 gcc gnome-terminal

使用(cin)用户输入将其粘贴到std :: system中,并在另一个终端中运行带有输入的命令

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

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

    return 0;
}

所以基本上我希望在gnome三元组中使用字符串ip,所以我可以例如对用户键入的ip进行nmap扫描

1 个答案:

答案 0 :(得分:1)

使用字符串格式可以很容易地做到这一点:

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()调用终端程序,如scheff在其注释中所述

os << "gterm -e \"nmap " << ip "\"";
std::system(os.str().c_str());