Visualizzazione dei risultati da 1 a 6 su 6

Discussione: colori in C

  1. #1

    colori in C

    salve a tutti

    io programmando in c sotto linux per cambiare i colori utilizzavo i comandi printf("\e[32m casa ") e scrive casa in verde.

    purtroppo questi comandi non hanno effetto sotto windows perciò la mia domanda è:

    esistono dei corrispondenti per windows??

  2. #2
    sì, ma non sono standard (dipende dall'ambiente C/C++ che stai utilizzando): http://forum.html.it/forum/search.ph...by=&sortorder=

    altrimenti ci sono le API di <windows.h>
    ...Terrible warlords, good warlords, and an english song

  3. #3
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Originariamente inviato da Johnny_Depp
    ...
    altrimenti ci sono le API di <windows.h>
    Ecco un esempio:

    codice:
    #include <windows.h>
    #include <stdio.h>
    
    void selector(unsigned short color)
    {
    HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hCon,color);
    } 
    
    void main() {
    	selector(2);
    	printf("%s\n", "Verde");
    	selector(7);
    	printf("%s\n", "Bianco");
    	selector(12);
    	printf("%s\n\n", "Rosso");
    
    	system("PAUSE");
    
    	
    }
    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  4. #4
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    oltre che interi puoi passare definizioni come queste:

    codice:
    FOREGROUND_BLUE Text color contains blue. 
    FOREGROUND_GREEN Text color contains green. 
    FOREGROUND_RED Text color contains red. 
    FOREGROUND_INTENSITY Text color is intensified. 
    BACKGROUND_BLUE Background color contains blue. 
    BACKGROUND_GREEN Background color contains green. 
    BACKGROUND_RED Background color contains red. 
    BACKGROUND_INTENSITY Background color is intensified. 
    COMMON_LVB_LEADING_BYTE Leading byte. 
    COMMON_LVB_TRAILING_BYTE Trailing byte. 
    COMMON_LVB_GRID_HORIZONTAL Top horizontal. 
    COMMON_LVB_GRID_LVERTICAL Left vertical. 
    COMMON_LVB_GRID_RVERTICAL Right vertical. 
    COMMON_LVB_REVERSE_VIDEO Reverse foreground and background attributes. 
    COMMON_LVB_UNDERSCORE Underscore.
    E' possibile mescolarle con l'operatore | :

    codice:
    #include <windows.h>
    #include <stdio.h>
    
     void selector(unsigned short color) {
    HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hCon,color);
    } 
    
    void main() {
    selector(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_RED);
    printf("%s", "Ciao");
    
    }

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    65
    ma se uso ad esmpio un selector(5); mi stampa ogni carattere del programma di violetto...non si può limitare la colorazione a una printf sola? tipo solo al titolo....

  6. #6
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    che io sappia no(queste cose le ho apprese in occasione del post sto anch' io sperimentando da poco meno di 1 ora).
    Dopo che hai scritto nel titolo con selector(5) risistemi con selector(7) e riscriverà in bianco.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.