Visualizzazione dei risultati da 1 a 7 su 7

Discussione: testo colorato in C

  1. #1
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    testo colorato in C

    in un gioco dos si può cambiare colore al testo (o cambiare il carattere)?

    se si come?

    ty
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    6
    Certo.
    ho fatto la stessa domanda in un altro forum una volta e la risposta
    è stata nella libreria conio.h; nello specifico devi utilizzare la funzione textcolor();
    Ciao

  3. #3
    il problema è che <conio.h> non appartiene alla libreria dello standard C. (quindi potresti non trovarlo nella release di C che stai utilizzando)

    Potresti sempre crearti un header ad hoc, da includere nei tuoi progetti C/C++.

    codice:
    //name "format_out.h"
    
    #include <windows.h>
    
    // gotxy() gestisce il cursore  
    
    void gotoxy(int x, int y)
    {
        COORD point;
        point.X = x; point.Y = y;
        SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), point);
    }
    
    
    
    
    
    // setrgb() gestisce il colore bg/fg
    
    void setrgb(int color)
    {
        switch (color)
        {
            case 0:    // White on Black
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                            FOREGROUND_INTENSITY | FOREGROUND_RED |
                            FOREGROUND_GREEN | FOREGROUND_BLUE);
            break;
          
            case 1:    // Red on Black
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                             FOREGROUND_INTENSITY | FOREGROUND_RED);
            break;
      
            case 2:    // Green on Black
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                          FOREGROUND_INTENSITY | FOREGROUND_GREEN);
            break;
      
            case 3:    // Yellow on Black
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                          FOREGROUND_INTENSITY | FOREGROUND_RED |
                          FOREGROUND_GREEN);
            break;
      
            case 4:    // Blue on Black
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                          FOREGROUND_INTENSITY | FOREGROUND_BLUE);
            break;
      
            case 5:    // Magenta on Black
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                         FOREGROUND_INTENSITY | FOREGROUND_RED |
                         FOREGROUND_BLUE);
            break;
      
            case 6:    // Cyan on Black
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                        FOREGROUND_INTENSITY | FOREGROUND_GREEN |
                        FOREGROUND_BLUE);
            break;
      
            case 7:    // Black on Gray
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                      BACKGROUND_INTENSITY | BACKGROUND_INTENSITY);
            break;
      
            case 8:    // Black on White
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                      BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
                      BACKGROUND_RED | BACKGROUND_GREEN |
                      BACKGROUND_BLUE);
            break;
      
            case 9:    // Red on White
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                      BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
                      BACKGROUND_RED | BACKGROUND_GREEN |
                      BACKGROUND_BLUE | FOREGROUND_RED);
            break;
      
            case 10:    // Green on White
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                     BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
                     BACKGROUND_RED | BACKGROUND_GREEN |
                     BACKGROUND_BLUE | FOREGROUND_GREEN);
            break;
      
            case 11:    // Yellow on White
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                     BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
                     BACKGROUND_RED | BACKGROUND_GREEN |
                     BACKGROUND_BLUE | FOREGROUND_RED |
                     FOREGROUND_GREEN);
            break;
      
            case 12:    // Blue on White
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                     BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
                     BACKGROUND_RED | BACKGROUND_GREEN |
                     BACKGROUND_BLUE | FOREGROUND_BLUE);
            break;
      
            case 13:    // Magenta on White
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                     BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
                     BACKGROUND_RED | BACKGROUND_GREEN |
                     BACKGROUND_BLUE | FOREGROUND_RED |
                     FOREGROUND_BLUE);
            break;
      
            case 14:    // Cyan on White
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                     BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
                     BACKGROUND_RED | BACKGROUND_GREEN |
                     BACKGROUND_BLUE | FOREGROUND_GREEN |
                     FOREGROUND_BLUE);
            break;
      
            case 15:    // White on White
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                    BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
                    BACKGROUND_RED | BACKGROUND_GREEN |
                    BACKGROUND_BLUE | FOREGROUND_RED |
                    FOREGROUND_GREEN | FOREGROUND_BLUE);
            break;
      
            default :    // White on Black
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
                    FOREGROUND_INTENSITY | FOREGROUND_RED |
                    FOREGROUND_GREEN | FOREGROUND_BLUE);
            break;
        }      
    }
    
    
    
    
    
    
    
    
    
    
    // clrscr() pulisce lo schermo
    
    void clrscr()
    {
        COORD coordScreen = { 0, 0 }; 
        DWORD cCharsWritten; 
        CONSOLE_SCREEN_BUFFER_INFO csbi; 
        DWORD dwConSize; 
        HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); 
        GetConsoleScreenBufferInfo(hConsole, &csbi); 
        dwConSize = csbi.dwSize.X * csbi.dwSize.Y; 
        FillConsoleOutputCharacter(hConsole, TEXT(' '), dwConSize, coordScreen, &cCharsWritten); 
        GetConsoleScreenBufferInfo(hConsole, &csbi); 
        FillConsoleOutputAttribute(hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten); 
        SetConsoleCursorPosition(hConsole, coordScreen); 
    }
    ...Terrible warlords, good warlords, and an english song

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    mi spieghi meglio cosa devo fare?
    quello che ai inserito e' il file che devo slavare in ***.h?

    e colorare il testo?

    in dev-c++ cè CONIO.H...
    c
    ome funzia textcolor?

    ty
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    salvalo con il nome che preferisci,
    basta che poi, quando lo vai ad includere tra gli header
    ti ricordi come lo hai chiamato (a me piace chiamarlo "format_out.h")

    Si, Dev C++ ti permette di utilizzare <conio> (che comprende le stesse funzioni inserite nel file che ho "postato" sopra).

    textcolor() si usa nel seguente modo:
    codice:
    #include <iostream>
    #include <stdlib.h>
    #include <conio.c>
    using namespace std;
    int main()
    {
        gotoxy(30,10); // coordinate X Y dello schermo DOS
        textcolor(LIGHTGREEN); // verde chiaro == textcolor(10);
        cprintf("HELLO WORLD\n\n");
        textcolor(RED);
        system("PAUSE");
        return 0;
    }
    Questi sono i colori utilizzabili.
    codice:
        BLACK,
        BLUE,
        GREEN,
        CYAN,
        RED,
        MAGENTA,
        BROWN,
        LIGHTGRAY,
        DARKGRAY,
        LIGHTBLUE,
        LIGHTGREEN,
        LIGHTCYAN,
        LIGHTRED,
        LIGHTMAGENTA,
        YELLOW,
        WHITE
    ...Terrible warlords, good warlords, and an english song

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    in C devo cambiare iostream con stdio e basta?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  7. #7
    YES :adhone:

    togli <iostream> e anche

    using namespace std;
    ...Terrible warlords, good warlords, and an english song

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 © 2024 vBulletin Solutions, Inc. All rights reserved.