Esistono diversi metodi per gestire i colori, potresti per esempio salvare il seguente codice in un file chiamato colors.h e posto nella cartella che contiene il tuo sorgente.
E poi usarlo così:codice:// ConsoleColor.h #pragma once #include <iostream> #include <windows.h> inline std::ostream& blue(std::ostream &s) { HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hStdout, FOREGROUND_BLUE |FOREGROUND_GREEN|FOREGROUND_INTENSITY); return s; } inline std::ostream& red(std::ostream &s) { HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hStdout, FOREGROUND_RED|FOREGROUND_INTENSITY); return s; } inline std::ostream& green(std::ostream &s) { HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hStdout, FOREGROUND_GREEN|FOREGROUND_INTENSITY); return s; } inline std::ostream& yellow(std::ostream &s) { HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hStdout, FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_INTENSITY); return s; } inline std::ostream& white(std::ostream &s) { HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hStdout, FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE); return s; } struct color { color(WORD attribute):m_color(attribute){}; WORD m_color; }; template <class _Elem, class _Traits> std::basic_ostream<_Elem,_Traits>& operator<<(std::basic_ostream<_Elem,_Traits>& i, color& c) { HANDLE hStdout=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hStdout,c.m_color); return i; } // Copyleft Vincent Godin
Nota le virgolette al posto di <>.codice:#include <iostream> #include "colors.h" using namespace std; int main() { cout << green << "Ciao"; return 0; }
Leggi anche questo articolo.

Rispondi quotando