MFC 控制台输出
2015-08-04 12:23
357 查看
http://pydoncy.blog.163.com/blog/static/1438083902011101902437190/
利用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的介绍:
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())
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())
http://blog.csdn.net/acaiacc/article/details/5543669
相关文章推荐
- 1005 装载问题
- 如何基于RabbitMQ实现优先级队列
- Android studio初步学习
- python函数形参用法实例分析
- If you object has an "Id' property, it will be set with the generated Id from MongoDB.
- 小点滴——word多级编号——摘自贴吧
- 写给软件学院的本科生(转)
- LeetCode-Excel Sheet Column Number
- GraphX实现N度关系
- 1070. Mooncake (25)
- MongoDb的“not master and slaveok=false”错误及解决方法
- 1070. Mooncake (25)
- 详解Android系统中的root权限获得原理
- 九度oj 1008
- HDOJ 1002
- 友元函数的几种形式
- Android Parcelable和Serializable的区别(二)
- JAVA动态代理的作用
- 009.学习资源和计划管理
- 名称空间