本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:C++ – 控制台程序在控制台窗口可变参数格式化带颜色输出日志信息
原文链接:https://www.stubbornhuang.com/875/
发布于:2020年07月24日 11:29:43
修改于:2020年07月24日 11:29:43

1 C++以可变参数格式化带颜色输出日志信息
使用Unity时,它的日志系统做的就比较好,不同类型的日志信息在底下面板以不同的颜色输出出来,简单明了,所以仿照这个做了一个简陋的,不过也够用了,代码如下:
#include <iostream>
#include <Windows.h>
template <typename... Args>
void LogError(const char* fmt, Args... args) {
size_t strsize = snprintf(nullptr, 0, fmt, args...) + 1;
char* outstr = (char*)malloc(strsize);
snprintf(outstr, strsize, fmt, args...);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED);
std::cout << outstr << std::endl;
free(outstr);
}
template <typename... Args>
void LogWarning(const char* fmt, Args... args) {
size_t strsize = snprintf(nullptr, 0, fmt, args...) + 1;
char* outstr = (char*)malloc(strsize);
snprintf(outstr, strsize, fmt, args...);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN);
std::cout << outstr << std::endl;
free(outstr);
}
template <typename... Args>
void Log(const char* fmt, Args... args) {
size_t strsize = snprintf(nullptr, 0, fmt, args...) + 1;
char* outstr = (char*)malloc(strsize);
snprintf(outstr, strsize, fmt, args...);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
std::cout << outstr << std::endl;
free(outstr);
}
int main(int argn, char **argv)
{
LogError("%s", "LogError");
LogWarning("%s", "LogWarning");
Log("%s", "Log");
getchar();
return 0;
}
效果:
当前分类随机文章推荐
- C++ – 字节数组byte[]或者unsigned char[]与short的相互转换 阅读980次,点赞0次
- C++ - 将std::vector中的数值拷贝到数组中 阅读1786次,点赞1次
- C++ - C++使用cuda api获取当前GPU显卡的总共的显存容量、已使用显存容量、剩余显存容量 阅读3345次,点赞2次
- C++11 - std::function简要介绍以及可包装函数的几种形式总结 阅读2941次,点赞0次
- C++ - 智能指针的正确使用方式 阅读350次,点赞0次
- C++11 - 快速学会正则表达式 阅读1166次,点赞2次
- C++ - 使用标准库实现事件和委托,信号和槽机制 阅读181次,点赞0次
- C++ - std::string字符串格式化方法总结 阅读387次,点赞0次
- C++ - 最简单的将文本文件的内容一次性读取到std::string的方法 阅读4246次,点赞4次
- C++ - std::string与std::wstring相互转换 阅读1556次,点赞0次
全站随机文章推荐
- 书籍翻译 – Fundamentals of Computer Graphics, Fourth Edition,第3章 Raster Images中文翻译 阅读1785次,点赞3次
- 资源分享 - Real-Time Volume Graphics 英文高清PDF下载 阅读1717次,点赞0次
- 资源分享 - 3D游戏引擎设计 - 实时计算机图形学的应用方法 第2版 , 3D Game Engine Design - A Practical Approach to Real-Time Computer Graphics (Second Edition) 中文版PDF下载 阅读945次,点赞0次
- C++ - 判断两个字符串是否相等方法总结 阅读167次,点赞0次
- WordPress - 获取某个用户发表的评论数量 阅读1725次,点赞0次
- 资源分享 - GPU Pro 360 - Guide to Geometry Manipulation 英文高清PDF下载 阅读1938次,点赞0次
- Modern OpenGL - GLSL着色语言4:GLSL中的数据存储限制符 阅读1990次,点赞0次
- 资源分享 - Advanced global illumination (2nd Edition) 英文PDF下载 阅读5075次,点赞0次
- Alphapose - Windows下Alphapose(Pytorch 1.1+)版本2021最新环境配置步骤以及踩坑说明 阅读4404次,点赞1次
- 资源分享 - Python深度学习:基于PyTorch (吴茂贵著) 高清PDF下载 阅读3565次,点赞0次
评论
164