C++调用控制台获取输出


利用_popen(),把控制台当做文件一样读写。暂时还不知道有什么特别的用处,不过能读取控制台输出就好了。

只读

#include<iostream>
#include<string.h>
using namespace std;
int main()
{
	FILE* file;
	char cmd[1024] = {0};
	char data[1024] = {0};
	memcpy(cmd,"echo %path% ",100);
	if((file = _popen(cmd,"r"))!=NULL)
	{
		while(fgets(data,1024,file)!=NULL)
		{
			cout<<data<<endl;
		}
		_pclose(file);
	}
	cout<<"data len = "<<strlen(data)<<endl;
	cout<<"data = "<<data<<endl;
} 

写完就读的测试

#include<iostream>
#include<windows.h>
using namespace std;
int main()
{
	FILE* file;
	char cmd[1024] = {0};
	char data[1024] = {0};
	FILE* file2;
	if((file = _popen(cmd,"w"))!=NULL)
	{

		while(true)
		{
			printf("请输入指令:\n");
			string tmp;
			scanf("%s",cmd);
			fputs(data,file);
			if((file2 = _popen(cmd,"r"))!=NULL)
			{
				fgets(data,1024,file2);
				cout<<"执行结果:"<<data<<endl;
				fclose(file2);
			}
		}

	}
	else
	{
		cout<<"nothing"<<endl;
	}
	cout<<"data len = "<<strlen(data)<<endl;
	cout<<"data = "<<data<<endl;
} 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM