温馨提示×

c++中执行cmd命令的输入输出重定向如何实现

c++
小樊
83
2024-09-15 18:47:55
栏目: 编程语言

在C++中,你可以使用popen()函数来执行CMD命令并获取其输出

#include<iostream>
#include <fstream>
#include<string>

int main() {
    // 要执行的CMD命令
    std::string cmd = "dir";
    
    // 创建一个文件流,用于读取命令执行结果
    FILE* pipe = popen(cmd.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;

    return 0;
}

这个示例中,我们使用popen()函数执行了dir命令,然后从返回的文件流中读取命令执行结果。最后,我们将结果输出到控制台。

注意:popen()函数在Windows和Linux平台上都可以使用,但是在某些系统上可能需要安装额外的库。在使用前,请确保你的系统支持该函数。

0