为窗口程序添加控制台

第一步:添加头文件  RedirectIOToConsole.h

内容如下:

#include "stdafx.h"
#include <stdio.h>  
#include <fcntl.h>  
#include <io.h>  
#include <iostream>  
#include <fstream>  
#include <iostream>  
#ifndef _USE_OLD_IOSTREAMS  
using namespace std;  
#endif  
// maximum mumber of lines the output console should have  
static const WORD MAX_CONSOLE_LINES = 500;  
void RedirectIOToConsole();

第二步:添加程序文件  RedirectIOToConsole.cpp

内容如下:

#include "stdafx.h"
#include "RedirectIOToConsole.h"
void RedirectIOToConsole()  
{  
	int hConHandle;  
	long lStdHandle;  
	CONSOLE_SCREEN_BUFFER_INFO coninfo;  
	FILE *fp;  
	// allocate a console for this app  
	AllocConsole();  
	// set the screen buffer to be big enough to let us scroll text  
	GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &coninfo);  
	coninfo.dwSize.Y = MAX_CONSOLE_LINES;  
	SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE),  
		coninfo.dwSize);  
	// redirect unbuffered STDOUT to the console  
	lStdHandle = (long)GetStdHandle(STD_OUTPUT_HANDLE);  
	hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);  
	fp = _fdopen( hConHandle, "w" );  
	*stdout = *fp;  
	setvbuf( stdout, NULL, _IONBF, 0 );  
	// redirect unbuffered STDIN to the console  
	lStdHandle = (long)GetStdHandle(STD_INPUT_HANDLE);  
	hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);  
	fp = _fdopen( hConHandle, "r" );  
	*stdin = *fp;  
	setvbuf( stdin, NULL, _IONBF, 0 );  
	// redirect unbuffered STDERR to the console  
	lStdHandle = (long)GetStdHandle(STD_ERROR_HANDLE);  
	hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);  
	fp = _fdopen( hConHandle, "w" );  
	*stderr = *fp;  
	setvbuf( stderr, NULL, _IONBF, 0 );  
	// make cout, wcout, cin, wcin, wcerr, cerr, wclog and clog  
	// point to console as well  
	ios::sync_with_stdio();  
}  
第三步:在窗口程序中包含刚才创建的头文件:

//
#include "RedirectIOToConsole.h"
//

第四步:在窗口程序初始化过程中调用RedirectIOToConsole()函数:


RedirectIOToConsole();



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高晓伟_Steven

相逢即是有缘,动力源于金钱。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值