[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RiminiLUG-General] output colorato in c
Il mer, 2004-01-14 alle 20:57, Andrea Bolognani aka KiyuKo ha scritto:
> come posso fare per mandare in output (su console) dei caratteri colorati in
> un programma scritto in c? ho sentito dire che in conio.h esiste una funzione
> textcolor() simile a quella del pascal, ma preferivo usare funzioni standard.
> qualcuno sa come fare?
Il modo standard per usare i colori (e tutte le capabilites possibili in
una dato tipo di terminale) in console unix, e' utilizzare le librerie
curses (ncurses in linux).
Questo ti permette di svincolarti dal dover analizzare le sequenze
corrette per mandare un determinato colore ad un dato tipo di terminale
a seconda del valore della variabile TERM (sia esso xterm, piuttosto che
linux, ansi, vt100, o wyse60, o via dicendo), e si occupano le librerie
a determinarlo, analizzando il database 'terminfo'
(/usr/share/terminfo/*). In questa struttura infatti, sono definite
tutte le definizioni degli attributi devi vari tipi di terminale, e non
riguardano solo i colori, ma attributi di locazione e gestione video,
sequenze ritornate da tasti funzione o sequenze non standard e via
dicendo.
Nel programma in C (o in un suo header), dovrai includere l'header:
#include <ncurses.h>
e dovrai compilare il programma (o farti un Makefile all'uopo) che
contenga il link alla libreria ncurses (-lncurses).
Per quanto riguarda l'uso, ti suggerisco la lettura delle seguenti man
pages:
man ncurses
man init_pair
man COLOR_PAIR
man attrset
Ti potrei anche mandare qualche esempio pratico, estrapolandolo da
qualche mio vecchio sorgente, ma ti rovinerei tutto il gusto della
sorpresa, no ? .... ;-)))
Hope this help.
Gabriele
--
Saluti (Good bye)
Gabriele Zappi
+----- Using Fedora Core 1 (Yarrow) - 2.4.22-1.2115.nptl-GZ -------+
| E-mail address ..........: zappig@xxxxxxxxxxx |
| G. Zappi's personal pages: http://xoomer.virgilio.it/zappig/ |
| http://spazioinwind.libero.it/gzappi/ |
| ICQ Uin # 36664317 |
| Jabber account ..........: gabolander@xxxxxxxxxxxxxxx |
+------------------------ AMD K7 Athlon XP ------------------------+
--
Mailing list info: http://lists.linux.it/listinfo/riminilug-general