PDA

Visualizza la versione completa : [C] Testo colorato sulla shell di Linux


absgothic
02-12-2005, 10:17
Ciao a tutti!
Programmo in linguaggio C sotto ambiente Linux (in particolare al momento sto usando Fedora Core 4), qualcuno sa dirmi se esiste un modo per far stampare dalla propria applicazione del testo colorato sulla shell? :dhò:

Ho visto che invocando il comando "ls" dalla shell i file e le cartelle che elenca vengono distinti l'uno dall'altro usando colori differenti, quindi penso che si possa stampare a video caratteri colorati. :bhò:

qualcuno sa dirmi quale comando devo aggiungere nella mia applicazione per riuscirvi?

grazie a tutti, siete grandi! :ciauz:

biagio.ciuffo
02-12-2005, 10:27
Ciao, mi spiace, non posso aiutarti nel tuo problema. Visto però che sei un programmatore in C, vorrei farti una domanda. Devo interfacciare due programmi di ottimizzazione. Uno dei due, quello principale lavora in C++, che io conosco in maniera superficiale. Il problema che ho, può sembrare banale, è nel far eseguire l'altro programma. La prima cosa che devo fare è cioè far aprire il programma secondario dal programma prinicpale utilizzando il linguaggio C++. Sapresti darmi una mano? Mi sento uno sciocco.
A presto.
Biagio

absgothic
02-12-2005, 10:37
Ciao Biagio,
ancora non ho mai programmato di persona in C++ ma non dovrebbe essere troppo diverso dal C (anche se C++ è Object Oriented. A proposito sono programmatore Java, quindi dovrebbe essere ancora meglio!). Se non ho capito male, tu vorresti far lanciare dal programma scritto in C++ un 'altra applicazione?
E quest'altra in che linguaggio è scritta?

alka
02-12-2005, 10:58
Per favore, non modificate l'argomento originale della discussione. :nonono:

Inoltre, meglio usare titoli più significativi.

Questo lo correggo io.

Ciao! :ciauz:

Ikitt
02-12-2005, 12:34
Originariamente inviato da absgothic
Ciao a tutti!
Programmo in linguaggio C sotto ambiente Linux (in particolare al momento sto usando Fedora Core 4), qualcuno sa dirmi se esiste un modo per far stampare dalla propria applicazione del testo colorato sulla shell? :dhò:
Puoi usare i codici di escape ANSI. Si tratta (semplificando) di particolari stringhe da inserire prima del testo da modificare, interpretate in modo opportuno dal (l'emulatore di) terminale.
Esempio



/* colors macros */
#define COL(x) "\033[" #x ";1m"
#define COL_RED COL(31)
#define COL_GREEN COL(32)
#define COL_YELLOW COL(33)
#define COL_BLUE COL(34)
#define COL_WHITE COL(37)
#define COL_GRAY "\033[0m"

printf("%srosso!%s\n", COL_RED, COL_GRAY);

Il COL_GRAY finale serve a ripristinare il colore di default dei caratteri.

ibykos
02-12-2005, 13:04
caro amico!
visto che usi unix/linux ti consiglio di scrivere subito


man ncurses

subito dopo aver lanciato una shell.
La libreria ncurses sembra essere lo strumento più adatto per scrivere programmi che girano su un terminale.

kentaromiura
02-12-2005, 13:09
Originariamente inviato da absgothic
Ciao a tutti!
Programmo in linguaggio C sotto ambiente Linux (in particolare al momento sto usando Fedora Core 4), qualcuno sa dirmi se esiste un modo per far stampare dalla propria applicazione del testo colorato sulla shell? :dhò:

Ho visto che invocando il comando "ls" dalla shell i file e le cartelle che elenca vengono distinti l'uno dall'altro usando colori differenti, quindi penso che si possa stampare a video caratteri colorati. :bhò:

qualcuno sa dirmi quale comando devo aggiungere nella mia applicazione per riuscirvi?

grazie a tutti, siete grandi! :ciauz:
http://forum.html.it/forum/showthread.php?s=&threadid=655927
:ciauz:

absgothic
07-12-2005, 10:36
Volevo solo ringraziarvi e dirvi che siete veramente grandi!

Ho seguito dapprima il consiglio di ikitt perchè mi sembrava più compatto ed effettivamente sono riuscito subito a produrre stampe a video coloratissime!

Poi, per gusto della sperimentazione, ho incluso la libreria suggerita da Kentaromiura (a proposito, finalmente hanno fatto uscire Maximum Berserk nr 8!!!) e, dopo un iniziale incaponimento per farla ragionare, sono riuscito a formattare i testi in maniera ancora più soddisfacente.

Trattandosi però di una tesina universitaria, per compattezza e portabilità ho optato per il primo approccio(anche perchè la tesina dovrà girare sul computer del mio professore).

Vi ringrazio ancora, :zizi: ciao

Loading