在C++中,你可以使用popen()
函數來執行CMD命令并獲取其輸出
#include<iostream>
#include<string>
#include <cstdio>
std::string exec_cmd(const char* cmd) {
std::string result;
char buffer[128];
FILE* pipe = popen(cmd, "r");
if (pipe != nullptr) {
while (fgets(buffer, sizeof(buffer), pipe) != nullptr) {
result += buffer;
}
pclose(pipe);
} else {
throw std::runtime_error("popen() failed!");
}
return result;
}
int main() {
try {
std::string output = exec_cmd("ipconfig"); // 將你想要執行的CMD命令替換為"ipconfig"
std::cout << "Command output: "<< std::endl<< output<< std::endl;
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what()<< std::endl;
}
return 0;
}
這個示例代碼定義了一個名為exec_cmd()
的函數,該函數接受一個CMD命令字符串作為參數。然后,它使用popen()
函數執行命令并讀取輸出。最后,將輸出作為std::string
返回。
在main()
函數中,我們調用exec_cmd()
函數并傳入我們想要執行的CMD命令(在這個例子中是ipconfig
)。然后,我們將命令的輸出打印到控制臺。
請注意,這個示例代碼僅適用于Unix-like系統(如Linux和macOS)。如果你正在使用Windows系統,你需要將popen()
和pclose()
替換為_popen()
和_pclose()
,并包含<windows.h>
頭文件。