C++中,如何执行一个控制台命令并返回结果到字符串string中
2014-04-30 15:02
483 查看
在写作c、c++控制台程序时,我们可以直接调用控制台下的命令,在控制台上输出一些信息。
调用方式为 system(char*);
例如,在控制台程序中,获得本机网络配置情况。
int main(){
system("ipconfig");
return 0;
}
但是,如果我们想保存调用命令的输出结果呢?
这里给大家介绍一种方法:
如果是在windows系统下,请用_popen, _pclose替换popen, pclose。
这个函数中,输入的是命令的名字,返回的是执行的结果。
从一个国外网站上看来的:http://stackoverflow.com/questions/478898/how-to-execute-a-command-and-get-output-of-command-within-c
调用方式为 system(char*);
例如,在控制台程序中,获得本机网络配置情况。
int main(){
system("ipconfig");
return 0;
}
但是,如果我们想保存调用命令的输出结果呢?
这里给大家介绍一种方法:
#include <string> #include <iostream> #include <stdio.h> 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; }
如果是在windows系统下,请用_popen, _pclose替换popen, pclose。
这个函数中,输入的是命令的名字,返回的是执行的结果。
从一个国外网站上看来的:http://stackoverflow.com/questions/478898/how-to-execute-a-command-and-get-output-of-command-within-c
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android之获取手机上的图片和视频缩略图thumbnails
- android string.xml文件中的整型和string型代替
- Android java 与 javascript互访(相互调用)的方法例子
- 关于指针的一些事情
- String.intern
- Prototype源码浅析 String部分(二)
- 比较详细的WinXP故障恢复控制台完全手册第1/2页
- mysql 控制台操作
- C/C++数据对齐详细解析
- C++中引用的使用总结
- C与C++之间相互调用实例方法讲解
- C++中引用(&)的用法与应用实例分析
- 解析C++ 浮点数的格式化输出
- 深入分析C++中几个最不常用的关键字
- c++中inline的用法分析
- C++ Primer 第一部分基本语言
- 深入解析C++ Data Member内存布局
- 从汇编看c++中默认构造函数的使用分析
- 关于C++中的友元函数的一些总结