要在C++中捕获cmd命令的输出并解析,你可以使用popen()
函数
#include#include #include 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()
函数在某些平台上可能存在安全风险,因此在生产环境中使用时请谨慎。