C++ – 控制台程序在控制台窗口可变参数格式化带颜色输出日志信息
原创文章,作者:StubbornHuang,如若转载,请注明出处:《C++ – 控制台程序在控制台窗口可变参数格式化带颜色输出日志信息》https://www.stubbornhuang.com/875/
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++ 11 - final关键字简要介绍
- C++11/std::condition_variable - 生产者消费者模型
- C++11 - std::string - stod/stof/stoi/stol/stold/stoll/stoul/stoull,由std::string转换为int/long/float/double等其他类型
- C++ - 使用Websocket++编写客户端连接WebSocket服务器并进行通信
- C++ - 最简单的将文本文件的内容一次性读取到std::string的方法
- C++ - 获取当前进程内存使用情况
- C++ - 得到字符串中某个字符串出现的个数
- C++ 回调函数
- C++11 - override关键字简要介绍
- C++ - std::map - 存储动态指针时正确释放内存
全站随机文章推荐
- C++ - int转string方法总结
- Marching Cube(C++ OpenGl代码)读取医学三维图像*.raw进行三维重建
- Python3 - 正则表达式去除字符串中的特殊符号
- Python3爬虫 - requests库的requests.exceptions所有异常详细说明
- 我的开源项目 - 支持C++11特性的定时器TinyTimer
- WordPress - PhpStudy本地环境修改固定链接打不开网页404错误
- 资源分享 - Fluid Simulation for Computer Graphics, First Edition英文高清PDF下载
- 资源分享 - Interactive Computer Graphics - A top-down approach with WebGL(Seven 7th Edition)英文高清PDF下载
- OpenCV - 读取一个图像,并使用Canny算子进行边缘提取
- 资源分享 - 机器学习 (西瓜书) 周志华著PDF下载