假设我在 C++ 程序中执行了一些命令以在终端中运行。例如:
int main(){
std::system("./myprog");
return 0;
}
假设 myprog 产生一些打印到控制台的输出。我可以在我的 C++ 程序中使用这个输出吗?例如:
int main(){
some_var = std::system("./myprog");
if (some_var == "something")
// Do something.
return 0;
}
如有任何帮助,我们将不胜感激。再次感谢。
最佳答案
您需要使用 popen
功能:
FILE *fp = popen("./myprog", "r");
char buffer[128];
while (fgets(buffer, sizeof(buffer), fp))
{
std::cout << "Output from program: " << buffer << '\n';
}
pclose(fp);
关于c++ - 在 C++ 程序中处理 "system"调用的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9246460/