c++ - 有没有办法从 cmd 字符串中复制字符串?

标签 c++ string cmd ping

我对编码完全陌生。我需要老兵的建议,因为我这样做是为了完成我的任务。

有没有办法读取由命令提示符 (CMD) 生成的字符串?

我的任务是创建一个代码来对所有网络执行 ping 操作,并可能通过文件输入/输出将 IP 地址分配为事件和非事件。

例如,我想从 cmd 复制一个字符串:

来自 192.168.0.1 的回复:bytes=32 time<1ms TTL=64 <- (这表示事件) 来自 192.168.0.2 的回复:目标主机不可达<-(这表示不活动)

如果我能够复制该行,我可以编写一个 If/Else 条件来分隔它们。如果有任何更简单的方法来改善这种情况,请帮助我。谢谢。

下面的代码是 ping 到 255 之前的所有 IP 地址,但我还需要 1 个函数来分隔事件 IP 地址和非事件 IP 地址。

    using namespace std;

    void main()
    {
    string ipAddress;

    cout << "Enter the IPv4 address network..." << endl;
    cout << "Example: 10.0.0. or 192.168.1." << endl;

    getline(cin, ipAddress);
    cout << "Please wait..." << endl;

    string s = "ping " + ipAddress;

    for (int x = 0; x <= 255; ++x)
            {
                    stringstream ss;
                    ss << x << endl;
                    string newString = ss.str();
                    string finalString = s + newString;

                    system(finalString.c_str());
            }

    system("pause");
    }

P.S 我也在 http://www.cplusplus.com/forum/beginner/196197/ 发帖

最佳答案

您可以使用popen 函数。此函数允许您读取命令的输出。

就像 Martin 在评论中所说的那样,在 Windows 上您将使用 _popen ,msdn doc :

msdn.microsoft.com/en-us/library/96ayss4b.aspx

从这个页面看 linux 的例子:

http://www.sw-at.com/blog/2011/03/23/popen-execute-shell-command-from-cc/

关于c++ - 有没有办法从 cmd 字符串中复制字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39079073/

相关文章:

ruby - 如何从 Ruby 字符串中抓取文本片段?

java - 获取列表的最小和最大字符串

go - 更改打印行的值

c++ - 将 double 插入到 stringstream 时避免舍入

c++ - 使用大循环的测试程序似乎中途挂起

c++ - 只有当您按回车键或到达文件末尾时,函数才会导致段错误

c# - 从 C# 强制运行批处理文件从文件目录运行?

c++ - 什么时候用汇编语言调试c/c++程序?

c# - 将字符串拆分为最大长度的行而不打断单词的最佳方法

c# - 控制台/命令提示符应用程序.net/c#