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;
} 

原文链接: https://www.cnblogs.com/dayq/p/16025574.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

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

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/188296

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午2:08
下一篇 2023年2月12日 下午2:08

相关推荐