【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 项目代码下载

本节 项目文件下载

相关推荐
octopus_c2 小时前
C++ 运算符重载详解 && 日期类的实现
开发语言·c++
青少儿编程课堂2 小时前
2026蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:堆排序与优先队列解析
c++·python·算法·bfs·信息学竞赛
j7~2 小时前
【C++ 面试笔记】(篇二):类与数据抽象 & STL 容器与算法
开发语言·c++·面试·stl容器和算法·类和数据抽象
Fuyo_11193 小时前
深入解析 C++ unordered_set 与 unordered_map 的核心特性与性能实战
开发语言·c++
码匠许师傅3 小时前
【C++三方组件】FFmpeg:音视频处理的瑞士军刀
c++·ffmpeg·音视频
ShineWinsu3 小时前
对于Qt:QPushButton常见属性的解析
开发语言·c++·qt·api·gui·按钮·qpushbutton
Lhan.zzZ3 小时前
用 Qt 构建线程安全的通讯静态库:从线程亲和性到完整工程
c++·vscode·qt·tcp/ip·udp
xiaoye-duck4 小时前
《C++ 项目:手写大模型接入 SDK》DeepSeek接口设计(上):初始化和全量响应
开发语言·网络·c++·语言模型
fpcc4 小时前
跟我学c++中级篇—streambuf在glog中的应用分析
开发语言·c++
码匠许师傅4 小时前
【C++三方组件】OpenCV:计算机视觉的事实标准
c++