From 0328b1c1a595f3bbbea9297d7eafb9003cfdfdda Mon Sep 17 00:00:00 2001 From: Viktor Borosnyai Date: Sun, 21 Jun 2026 11:18:10 +0200 Subject: [PATCH] Add AsciiColor class for colored terminal output using ANSI escape codes --- CMakeLists.txt | 3 ++- src/AsciiColor.cpp | 15 +++++++++++++++ src/includes/AsciiColor.h | 17 +++++++++++++++++ src/main.cpp | 6 +++++- 4 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 src/AsciiColor.cpp create mode 100644 src/includes/AsciiColor.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 98cba11..1a56a25 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,8 @@ cmake_minimum_required(VERSION 3.16) project(LoggingLibrary LANGUAGES CXX) -set(SOURCES src/main.cpp src/Logger.cpp) +set(SOURCES src/main.cpp src/Logger.cpp + src/AsciiColor.cpp) set(INCLUDES src/includes) set(CMAKE_BUILD_TYPE Debug) diff --git a/src/AsciiColor.cpp b/src/AsciiColor.cpp new file mode 100644 index 0000000..2cbd269 --- /dev/null +++ b/src/AsciiColor.cpp @@ -0,0 +1,15 @@ +#include "includes/AsciiColor.h" + +std::string AsciiColor::colorized(const std::string& text, Color color) { + std::string code; + switch (color) { + case Color::Red: code = "\033[31m"; break; + case Color::Green: code = "\033[32m"; break; + case Color::Yellow: code = "\033[33m"; break; + case Color::Blue: code = "\033[34m"; break; + case Color::Magenta: code = "\033[35m"; break; + case Color::Cyan: code = "\033[36m"; break; + case Color::White: code = "\033[37m"; break; + } + return code + text + "\033[0m"; +} diff --git a/src/includes/AsciiColor.h b/src/includes/AsciiColor.h new file mode 100644 index 0000000..f13f3be --- /dev/null +++ b/src/includes/AsciiColor.h @@ -0,0 +1,17 @@ +#pragma once +#include + +enum class Color { + Red, + Green, + Yellow, + Blue, + Magenta, + Cyan, + White +}; + +class AsciiColor { +public: + static std::string colorized(const std::string& text, Color color); +}; diff --git a/src/main.cpp b/src/main.cpp index e4787c5..aeb0df8 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,5 +1,9 @@ #include "includes/Logger.h" +#include "includes/AsciiColor.h" +#include int main() { - Logger log; + std::cout << AsciiColor::colorized("This is red!\n", Color::Red); + std::cout << AsciiColor::colorized("This is green!\n", Color::Green); + std::cout << AsciiColor::colorized("This is yellow!\n", Color::Yellow); }