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