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;
}
效果:
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:C++ – 控制台程序在控制台窗口可变参数格式化带颜色输出日志信息
原文链接:https://www.stubbornhuang.com/875/
发布于:2020年07月24日 11:29:43
修改于:2023年06月26日 22:20:20
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
52