Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
[C] stampare testi in corsivo, grassetto...
Nuovo argomento   Rispondi    Indice del forum -> Programmazione
Precedente :: Successivo  
Autore Messaggio
saetta
Eroe in grazia degli dei
Eroe in grazia degli dei


Registrato: 25/02/08 10:52
Messaggi: 129

MessaggioInviato: 13 Mar 2011 15:54    Oggetto: [C] stampare testi in corsivo, grassetto... Rispondi citando

Buonasera, mi chiedevo se è possibile, in C, far si che una stringa stamapta su stdout sia formattata con i più comuni stili, come grassetto, corsivo, sottolineato...
So che esistono i codici di controllo ANSI (ESC[1m.....ecc) e ASCII(*testo*... ecc)
ma non ho ben capito se e come posso usarli per formattare dei testi con il mio programmino in C.

Grazie.

(...attendesi gentilmente un'altra geniale similitudine di SverX...) Very Happy
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 11568
Residenza: Tokelau

MessaggioInviato: 14 Mar 2011 12:09    Oggetto: Rispondi citando

std out mi risulta sia plain text, anche se probabilmente ha il supporto ANSI per i colori. Comunque se una prova con qualche sequenza ANSI l'hai già fatta avrai già visto se funziona...

se non hai ancora provato prova con
Codice:
printf ("\x1b[1m ....

al massimo ti ritrovi le scritte di un altro colore, per simulare il grassetto.

niente similitudini per ora Wink
Top
Profilo Invia messaggio privato HomePage
saetta
Eroe in grazia degli dei
Eroe in grazia degli dei


Registrato: 25/02/08 10:52
Messaggi: 129

MessaggioInviato: 14 Mar 2011 16:59    Oggetto: Rispondi citando

ho fatto prove col programmino classico "hello world"
cercando di stamparlo in grassetto, corsivo, ecc (sia con printf che con puts(...stdout) )
con istruzioni del tipo
Codice:

printf("ESC[1mHello World!!!ESC[0m");

printf("\[1m Hello World!!! \[0m");



che sono indubbiamente scorrette.

Ho pensato alla libreria curses ma non l'ho mai usata nè letta quindi fondamentalmente non so di cosa si tratti di preciso.
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 11568
Residenza: Tokelau

MessaggioInviato: 15 Mar 2011 10:14    Oggetto: Rispondi

Le sequenze di escape ANSI (come tutte le sequenze di escape) devono cominciare con il carattere ascii 27 (ESC, appunto) quindi devi scrivere
Codice:
\x1b
e poi il resto. Vedi il mio esempio. Io le uso per posizionare il testo sulla console (scrivere in una precisa riga e colonna) e funzionano, almeno quelle.
Top
Profilo Invia messaggio privato HomePage
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Programmazione Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi