Colorare una stringa?

di il
1 risposte

Colorare una stringa?

Buona sera a tutti, questa è la mia prima domanda sul forum
Ho deciso, dato che sono al primo anno di ingegneria informatica, di cominciare a fare domande su forum specifici anzi che su yahoo answers .
Ecco la mia domanda di inaugurazione:
Io uso Eclipse come ambiente di programmazione e MinGW come compilatore.
Voglio colorare una stringa, un intero, un char, una scritta insomma.
Mi va bene sia che sia direttamente una colorazione in output (col cout ad esempio) o che sia invece una colorazione fisica della variabile..
Tenete presente che non ha funzionato:
std::cout << "\033[1m;Ciao\033[0m;\n"; ( so che questa servirebbe per il grassetto ma penso che il metodo del colore sia assimilabile, e quindi ugualmente non funzionante )
Ho letto qualcosa sulla manipolazione Handle ( già che ci siamo se vi va di spiegarmelo non so di che si tratta ), ma la ragazza che lavora con me per il progetto a cui serve questa cosa mi ha detto che le sembra esagerato ricorrere ad una cosa del genere, non ho capito bene cosa intendesse, ma non voglio fare la figura di quello che da solo non sa fare nienteeee ! Non c'è un altro modo per evidenziare ( anche cambiare il colore delle lettere e basta va bene)? Non saprei io speravo in una singola istruzione, oppure mi pare di aver visto da qualche parte una volta una libreria "color.h".
A quanto ho capito invece in caso non si potesse mi tocca usare gli Handle ( a patto che funzionino dato che ancora non ho provato ) magari creando una funzione che potrebbe prendere in input la stringa e il colore desiderato.
Grazie mille a tutti per la pazienza
Help!!!!

1 Risposte

  • Re: Colorare una stringa?

    In questo link trovi alcune funzioni.
    Usare gli handle per fare quello che devi fare è l'unica via sotto windows.
    Il comando che hai passato è per terminale del tipo vt100 e windows non lo implementa.
    Nel tuo caso prima di scrivere ad output con printf cambia il colore con con_setcolor() per settare il colore lo si fa semplicemente con dei valori esadecimale,ovvero lo short int color usa gli 8 bit di destra come colore del font e quelli di sinistra come colore di background
    quindi il colore sarà:
    0x<background><foreground>
    0x07 è il colore di default
    0x3E dovrebbe essere verde(3) dietro e giallo(E) ma non ricordo

    Come primo esperimento potresti fare un ciclo tipo:
    
    for( i = 0 ,k = 0; i < 16 ; i++,k++)
    {
        for( j = 0 ,k = 0; j < 16 ; j++,k++)
        {
            con_setcolor(k);
            printf ("A"); 
       }
       printf("\n");
    }
    
Devi accedere o registrarti per scrivere nel forum
1 risposte