Il Problema
Nello scrivere e progettare programmi sia in C che in C++, lo sviluppatore sceglie se realizzare un programma che dovrà funzionare in Console o dovrà essere dotato di un’interfaccia utente a finestre, menù, pulsanti, ecc..
Nellla scelta di realizzare un programma che utilizzi la Console quello che viene definito il terminale, può essere a volte necessario predisporre una piccola formattazione di uscita talvolta che preveda la visualizzazione di certe parti di testo o sfondo a colori.
La gestione dei colori e la formattazione in termini di spaziatura è abbastanza complessa, in quanto il primo scoglio da affrontare e l’approccio diverso che occorre avere a seconda se li programma dovrà girare in una Console Windows / MS-DOS o in una console Linux/Unix/MacOSX in generale.
Approccio utilizzato
L’approccio che è esposto qui cerca di unificare la gestione di quest’aspetto tenendo conto dei diversi ambienti operativi e delle differenze che intercorrono in termini di Output in C e C++; infatti in C l’istruzione di output è l’istruzione “printf” mentre in C++ è l’istruzione “cout”. Inoltre il C++è un linguaggio di programmazione che cronologicamente è stato creato come evoluzione del linguaggio C e mette a disposizione alcune funzionalità aggiuntive per le spaziatura e la formattazione dell’output in generale che sono nelle funzioni previste dalla libreria / template <iomanip>.
L’idea di base
La risoluzione della formattazione del testo in vari colori passa dalla definizione di due parametri fondamentali: il primo il colore del testo “Foreground” e il secondo dal colore dello sfondo “Background”. Questi due parametri possono essere esplicitati mediante il codice dei colori corrispondenti per ora solo 16 da 0 a 15 sia per il testo che per lo sfondo in formato esadecimale e mediante le sequenze di Escape.
Le sequenze di Escape sono quelle sequenze che prevedono l’anteposizione del carattere “\” prima del codice specifico e che per esempio può essere utilizzato per le spaziature. Infatti ad esempio “\n” è l'”a capo” riga, “\t” è la tabulazione, e così via.
Puoi abbonarti al link al menù principale o cliccando sul link Abbonati Ora!
Codifica dei colori
La tabella dei codici di colori e sfondi previsti in è quindi:
COLORE | CODICE TESTO | CODICE SFONDO |
Nero | 30 | 40 |
Rosso | 31 | 41 |
Verde | 32 | 42 |
Giallo | 33 | 43 |
Blu | 34 | 44 |
Magenta | 35 | 45 |
Azzurro | 36 | 46 |
Bianco | 37 | 47 |
In questa tabella i codici dei colori sono riportati in esadecimale e tali codici partono da un valore esadecimale 30h pari a 48 in decimale e arrivano fino a FFh. La tabella non riporta tutti i colori
In questa pagina sono presenti link di affiliazione che garantiscono a questo sito una piccola quota di ricavi, senza variazione del prezzo per l’acquirente.