2012-02-05 19 views
5

In C++ il seguente codice quando viene eseguito nella console stamperà il testo a colori:Come posso creare un testo colorato?

cout << "\e[32;40mGreenForegroundAndBlackBackgroundText" << endl; 

In D ottengo un errore:

string s = "\e[32;40mGreenForegroundAndBlackBackgroundText"; // undefined escape sequence \e 

Esiste un modo per ottenere questo lavoro in D?

+0

Ricordare che le sequenze di escape riportate sopra non funzioneranno in nessun altro terminale non ANSI. – DejanLekic

+0

Ho lavorato a [una libreria per questo] (http://code.google.com/p/decora)! (Non riesco a credere a quanto sia serendipitoso.) – Maxpm

risposta

8

La stringa costante C++ escape \e per il carattere di escape è un'estensione GCC non standard di C per character escapes (adottata anche da Clang, probabilmente).

Hai solo bisogno di mettere la codifica ottale di esso forse come \033 o \x1b

Fate attenzione però che \e[32;40m non è standard C o C++, è la sequenza ANSI terminale escape relative al tty -s.

Problemi correlati