MFC程序打开控制台

转自:http://blog.csdn.net/acaiacc/article/details/5543669

利用AllocConsole() 
在你的MFC程序中添加这些代码,可以获得控制台的输入,你试试 

AllocConsole(); 
freopen("CONOUT$","w+t",stdout); 
freopen("CONIN$","r+t",stdin); 
cout << "Input:" <<endl;
int iTest = 0;
cin >> iTest;
fclose(stdout);
fclose(stdin);
FreeConsole();

afxDump << "Input Content:" << iTest << endl;

 

 

记住,及时在一个GUI程序中,你也可以有一个控制台

好处:

1 不像窗口控件,依赖消息和重绘

2 程序飞掉了,控制台还在

3 方便的重定向到文本,可以用比较工具比较

 

 

在某些时候,我们可能需要在Win32窗口应用程序中打开控制台窗口,打印一些消息,或者作为当前程序的另外一个人机交互界面,或者为了帮助调试程序。为了达到这种效果,需要了解函数AllocConsole和C-Runtime的freopen函数。
AllocConsole函数会为当前的窗口程序申请一个Console窗口。这是MSDN上对AllocConsole的介绍:

AllocConsole

 

The AllocConsole function allocates a new console for the calling process.

BOOL AllocConsole( void );

函数调用成功,返回非零值,调用不成功则返回0.

在为当前窗口程序申请到console后,我们需要调用C-Runtime的freopen函数将标准输出(stdout)重定位到新申请的console。
freopen的原型如下:

FILE  * freopen( 
   
const   char   * path,
   
const   char   * mode,
   FILE 
* stream 
);

我们调用的时候是这么着传入参数的:

freopen( " CONOUT$ " , " w " ,stdout);

其中"CONOUT$"是指代当前console的特殊字符串,"w"表明以written模式打开这个console,stdout指代的是系统的标准输出设备。


下面是整个的代码:

if (AllocConsole())
 
{
  freopen(
"CONOUT$","w",stdout);
  printf(
"hello, world!");
 }
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值