MFC调用控制台,利用cout、printf输出信息

MFC调用控制台,利用cout、printf输出信息

添加头文件
#include <io.h>
#include <fcntl.h>
#include <stdio.h>

添加如下两个函数用来启动和结束控制台
static FILE *m_pf = NULL;
void StartConsole()
{
if (m_pf)
CloseConsole();
AllocConsole();//控制台调试窗口开启
freopen_s(&m_pf, “CONOUT$”, “w”, stdout);
SetConsoleTitle(_T(“logs”));
}

void CloseConsole()
{
if (m_pf)
fclose(m_pf);
m_pf = NULL;
FreeConsole();
}

编译时如果提示freopen错误unsafe
设置工程属性——C/C++——预处理器——预处理器定义中加入一条指令:_CRT_SECURE_NO_WARNINGS,确认即可。

使用方法:
在mfc程序中任意位置调用StartConsole(),都会打开控制台界面。
随时都可以利用printf和cout向控制台窗口输出信息,
printf示例如下:
printf("name = %s\n ", “Mr Wang”);
printf("age = %d\n ", 30);

unicode时,向控制台输出unicode信息:
setlocale(LC_ALL, “chs”);//先把输出设置为中文
_tprintf(_T("%s "), s);
如果提示setlocale和LC_ALL错误,增加下面头文件,
#include<locale.h> //本头文件要放在#include "stdafx.h"后面

cout示例如下:
std::cout << “cout test” << std::endl;
int itime = 100;
std::cout << " time = " << itime << " secs" << std::endl;
float fData = 1.0/3;
std::cout << " time = " << fData << " 计算结果" << std::endl;

unicode时,向控制台输出unicode信息:
std::locale loc("chs");
std::wcout.imbue(loc);
std::wcout << L"中文";
std::wcout << _T("中文");

注意:
1、想要关闭控制台时,调用CloseConsole(),
不可手动点击控制台右上角关闭按钮关闭控制台,程序会出错。
2、鼠标拖动选择控制台中内容后,可能会出错。

亲测可用,vs2013做了个MFC基于对话框调用控制台输出信息的例子程序,
下面地址下载:
https://download.csdn.net/download/weixin_41885527/14042142

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

战斗的大熊

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值