在寫作c、c++控制臺(tái)程序時(shí),我們可以直接調(diào)用控制臺(tái)下的命令c語言輸出到控制臺(tái),在控制臺(tái)上輸出一些信息。
調(diào)用方式為 (char*);
例如,在控制臺(tái)程序中,獲得本機(jī)網(wǎng)絡(luò)配置情況。
int main(){
("");
0;
}
但是,如果我們想保存調(diào)用命令的輸出結(jié)果呢?
這里給大家介紹一種方法:
#include

#include
#include
std::string exec(char* cmd) {

FILE* pipe = popen(cmd, "r");
if (!pipe) return "ERROR";
char buffer[128];
std::string result = "";

while(!feof(pipe)) {
if(fgets(buffer, 128, pipe) != NULL)
result += buffer;
}

pclose(pipe);
return result;
}
如果是在系統(tǒng)下,請(qǐng)用, 替換popen, 。
這個(gè)函數(shù)中,輸入的是命令的名字c語言輸出到控制臺(tái),返回的是執(zhí)行的結(jié)果。
從一個(gè)國外網(wǎng)站上看來的: