【21】MFC入门到精通——MFC 调试及运行状态下,使用printf() 或者 cout 打印输出信息

文章目录

  • 1 方法
  • 2 实例应用
  • 3 在MFC初始化中调用一次,所以输出的地方都可打印
  • 4 项目代码下载

MFC运行状态下,使用printf() 或者 cout 打印输出信息

1 方法

只需在需要输出语句前加上以下两行代码,运行后会打开一个cmd窗口,

就可以打印输出printf() 或者 cout信息

cpp 复制代码
AllocConsole();        //AllocConsole函数的功能是为当前的窗口程序申请一个Console窗口
freopen("CONOUT$", "w", stdout);  // freopen函数用来替换一个流,或者说重新分配文件指针,以实现重定向。

AllocConsole函数的功能是为当前的窗口程序申请一个Console窗口 返回非零值:调用成功,返回0,调用不成功

freopen函数用来替换一个流,或者说重新分配文件指针,以实现重定向。可重定向的流有:标准输入流、标准输出流或者标准错误流。

  • FILE *freopen(const char *path, const char *mode, FILE *stream);
    • "CONOUT$"是指代当前console的特殊字符串,
    • "w"表明以written模式打开这个console,
    • stdout指代标准输出流。

2 实例应用

3 在MFC初始化中调用一次,所以输出的地方都可打印

在初始化函数OnInitDialog()处调用一次PrintMessage(),然后在需要输出的地方直接输出即可。程序运行后直接调出Console窗口。

也可以将其封装成函数,便于调用

cpp 复制代码
void CMFCApplication2Dlg::PrintMessage()
{
	AllocConsole();                   //AllocConsole函数的功能是为当前的窗口程序申请一个Console窗口
	freopen("CONOUT$", "w", stdout);  // freopen函数用来替换一个流,或者说重新分配文件指针,以实现重定向。

	std::cout << "调试输出窗口已打开" << std::endl;
}

4 项目代码下载

本节 项目文件下载

相关推荐
im_AMBER14 分钟前
Leetcode 102 反转链表
数据结构·c++·学习·算法·leetcode·链表
今儿敲了吗34 分钟前
01|多项式输出
c++·笔记·算法
程序员Jared37 分钟前
C++11—mutex
c++
朔北之忘 Clancy1 小时前
2025 年 9 月青少年软编等考 C 语言一级真题解析
c语言·开发语言·c++·学习·数学·青少年编程·题解
量子炒饭大师1 小时前
【C++入门】Cyber底码作用域的隔离协议——【C++命名空间】(using namespace std的原理)
开发语言·c++·dubbo
REDcker1 小时前
RTCP 刀尖点跟随技术详解
c++·机器人·操作系统·嵌入式·c·数控·机床
楚Y6同学1 小时前
基于 Haversine 公式实现【经纬度坐标点】球面距离计算(C++/Qt 实现)
开发语言·c++·qt·经纬度距离计算
老歌老听老掉牙2 小时前
优化样条曲线拟合参数解决三维建模中的截面连续性问题
c++·opencascade·样条曲线
散峰而望2 小时前
【算法竞赛】栈和 stack
开发语言·数据结构·c++·算法·leetcode·github·推荐算法
不爱吃糖的程序媛3 小时前
OpenHarmony 通用C/C++三方库 标准化鸿蒙化适配
c语言·c++·harmonyos