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

   2024-09-30 3430
核心提示:要在C++中捕获cmd命令的输出并解析,你可以使用popen()函数#includeiostream#includestring#include cstdioint main() {// 创建

要在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()函数在某些平台上可能存在安全风险,因此在生产环境中使用时请谨慎。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号