MFC程序实现控制台输出的方式

2016-10-29 09:02:31|?次阅读|上传:wustguangh【已有?条评论】发表评论

关键词:MFC, C/C++|来源:唯设编程网

也许很多人会说,MFC程序不是可视化窗口程序吗,为何还需要那么原始的控制台输出方式呢?那仅仅是针对一般的程序而言,如果你的程序是一个计算程序,中间会有许多计算过程,而你的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,如下图所示:

MFC程序实现控制台输出的方式

最后的NumericalAnalysis.exe是生成应用程序的名称,你需要根据你的程序进行修改。

到此,MFC程序实现控制台输出的方式的两种方式就介绍完成了,希望能够满足你的需求^_^

发表评论0条 】
网友评论(共?条评论)..
MFC程序实现控制台输出的方式