如何在c++中捕获cmd命令的输出并解析

1949idc 2年前 (2024-09-18) 阅读数 428 #编程语言

要在C++中捕获cmd命令的输出并解析,你可以使用popen()函数

#include<iostream>
#include<string>
#include <cstdio>

int main() {
    // 创建一个包含命令的字符串
    std::string command = "dir"; // 这里可以替换为任意你想执行的命令

    // 使用popen()执行命令并获取输出
    FILE* pipe = popen(command.c_str(), "r");
    if (!pipe) {
        std::cerr << "Failed to execute command."<< std::endl;
        return 1;
    }

    // 读取命令的输出
    char buffer[128];
    std::string result;
    while (fgets(buffer, sizeof(buffer), pipe)) {
        result += buffer;
    }

    // 关闭管道
    pclose(pipe);

    // 输出结果
    std::cout << "Command output: "<< std::endl<< result<< std::endl;

    // 解析输出(这里只是简单地将输出分割成行)
    std::istringstream iss(result);
    std::string line;
    while (std::getline(iss, line)) {
        std::cout << "Parsed line: "<< line<< std::endl;
    }

    return 0;
}

这个示例程序会执行dir命令(Windows系统下的列出目录内容命令),然后读取并输出命令的输出。接着,它会解析输出,将其分割成多行并打印出来。你可以根据需要修改命令和解析过程。

注意:popen()函数在某些平台上可能存在安全风险,因此在生产环境中使用时请谨慎。

版权声明

本文内容由互联网用户自发贡献,该文观点仅代表作者本人
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

© 2010 首途云安 & 厦门硕顿信息技术有限公司 & 闽ICP备11016866号  增值电信业务经营许可证:B1-20203020 地址:福建厦门思明区嘉禾路297号1806
高新技术企业
软件产品证书
计算机软件著作权
ISO认证
国家3A企业