使用 (cin) 用户输入将其粘贴到 std::system 并在另一个终端中使用输入运行命令
Posted
技术标签:
【中文标题】使用 (cin) 用户输入将其粘贴到 std::system 并在另一个终端中使用输入运行命令【英文标题】:Use the (cin) user input to paste it in std::system and run a command with the input in another terminal 【发布时间】:2018-08-20 10:19:33 【问题描述】:int main()
string ip;
cout << "IP to scan: ";
cin >> ip;
std::system(" nmap .... ")
return 0;
所以基本上我希望在 gnome 终端中使用字符串 ip,这样我就可以对用户输入的 ip 进行 nmap 扫描
【问题讨论】:
不清楚是什么问题。当你做你想做的事时会发生什么?不行吗? 用另一个终端的输入运行命令然后你必须在system()
中调用gterm
。您可以提供命令 nmap
作为命令行参数,例如system("gterm -e \"nmap .... \"");
或 system("gterm -x nmap .... ")
。在文档中找到这个:gnome-terminal - Options
【参考方案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());
【讨论】:
stu.cpp:在函数'int main()'中:stu.cpp:11:24:错误:聚合'std::ostringstream os'的类型不完整,无法定义std::ostringstream操作系统; ^~ @TheUnknownGuy 缺少一些包含:#include <iostream>
#include <sstream>
#include <string>
。
@TheUnknownGuy 使用#include <sstream>
。如有更多问题,请参阅documentation。
@TheUnknownGuy ...您可能必须在main()
之前插入using namespace std;
。
@TheUnknownGuy 我看不出多输入有何不同。只需使用循环等。以上是关于使用 (cin) 用户输入将其粘贴到 std::system 并在另一个终端中使用输入运行命令的主要内容,如果未能解决你的问题,请参考以下文章
html Squarespace:这是一种黑客,可以在每页的基础上隐藏产品块中的“数量”输入字段。将其粘贴到某处的代码块中