2016-10-29 09:02:31|?次阅读|上传:wustguangh【已有?条评论】发表评论
关键词:MFC, C/C++|来源:唯设编程网
也许很多人会说,MFC程序不是可视化窗口程序吗,为何还需要那么原始的控制台输出方式呢?那仅仅是针对一般的程序而言,如果你的程序是一个计算程序,中间会有许多计算过程,而你的MFC主窗口可能是一个图形显示界面,如下图所示:
显然,如此多的计算数据使用MessageBox是无法胜任的,还有中间计算过程如何让用户查看呢?MessageBox显示一个矩阵是多么不方便,而且如果是一个大型程序,编写计算部分内容的人员可能对各种MFC相关的API并不熟悉,在他们的代码中或许已经使用了大量的cout语句,用以输出中间计算过程或者错误信息,这些内容如何使用MessageBox展示呢?
由此可见,使用cout在许多MFC程序中显得非常必要,通过搜集整理,本文总结了两种在MFC应用程序中使用cout的方法:
1. 直接使用代码完成:
在代码的开头,添加包含语句:
#include <conio.h>
在程序的入口处添加如下代码:
//显示控制台 if(!AllocConsole()) AfxMessageBox( _T("Failed to create the console!"), MB_ICONEXCLAMATION ); //重定向输出位置 freopen("CON", "r", stdin ); freopen("CON", "w", stdout); freopen("CON", "w", stderr);
这段代码主要完成两部分内容,1是控制台的初始化,使用AllocConsole实现,2是重定向stdin,stdout,stderr到控制台。
在程序结束之前记得添加如下语句,用于完成资源的释放:
if ( !FreeConsole() ) AfxMessageBox( _T("Could not free the console!") );
到此,就已经完成了所有的准备工作,你的程序启动后会自动弹出一个黑色背景的控制台输入/输出界面,在你的代码中就可以和控制台一样使用cout语句啦!
2. 通过配置项目的属性实现
这种方法无需你在代码里面进行任何编辑,右键点击对应的项目,在弹出的项目属性配置窗体中,找到“配置属性->生成事件->后期生成事件”,在右侧的命令行中输入:editbin /SUBSYSTEM:CONSOLE $(OUTDIR)NumericalAnalysis.exe,如下图所示:
最后的NumericalAnalysis.exe是生成应用程序的名称,你需要根据你的程序进行修改。
到此,MFC程序实现控制台输出的方式的两种方式就介绍完成了,希望能够满足你的需求^_^