Frage zu Improved Console



  • Warum funktioniert das den bei mir nicht? Wie funktioniert den die Funktion clearColor(..) genau? Die löscht doch den Bildschirm und macht den Hintergrund dann entweder schwarz oder weiß?

    #include <iostream>
    #include "ic.hpp"
    
    using namespace ic;
    using namespace ic::shorties;
    using namespace std;
    
    int main ()
    {
        clearColor(FG_WHITE);
        cin.get();
        return 0;
    }
    

    ERROR:

    -------------- Build: Debug in bunt ---------------
    Compiling: main.cpp
    main.cpp: In function int main()': main.cpp:10: error:clearColor' undeclared (first use this function)
    main.cpp:10: error: (Each undeclared identifier is reported only once for each function it appears in.)
    Process terminated with status 1 (0 minutes, 0 seconds)
    2 errors, 0 warnings

    Dankeschön schon mal im Voraus.



  • Hallo Stromberg,

    ich persönlich kenne die Funktion clearColor nicht. Den Compiler-Ausgaben zufolge ist diese Funktion nicht deklariert. Du musst also die Header-Datei einbinden in der clearColor implementiert ist.

    Eine alternative um den gewünschten Effekt zu erreichen wäre folgende.

    <stdlib.h> // für system
    <stdio.h>  // für puts, getchar
    
    int main()
    {
         puts("Hallo!") ;
         getchar() ;           // auf Eingabe warten
         system("cls") ;       // Löschen des Bildschirminhalts
         system("color 0F") ;  // schwarzer Hintergrund, weißer Vordergrund
         puts("Hallo!") ;
         getchar() ;
         return 0 ;
    }
    

    Du musst einen hexadezimalen Wert an color übergeben. Der erste Wert steht für den Hintergrund und der zweite für den Vordergrund (Schrift). Hier alle möglichen Werte.

    erster Wert
    -----------
    0 = Schwarz
    1 = Dunkelblau
    2 = Dunkelgrün
    3 = Blaugrün
    4 = Dunkelrot
    5 = Lila
    6 = Ocker
    7 = Hellgrau
    8 = Dunkelgrau
    9 = Blau

    zweiter Wert
    ------------
    A = Grün
    B = Zyan
    C = Rot
    D = Magenta
    E = Gelb
    F = Weiß

    Für mehr Informationen gebe unter Start\Ausführen cmd ein. In dem sich öffnenden Fenster gebe nun "color /?" (ohne Anführungszeichen) ein.



  • Hab mein Problem gelöst. Das "clearColor" stand ganz frei ohne Objekt rum, man muss es aber mit dem schon vordefiniertem Objekt "con" aufrufen. Also muss es heißen "con.clearColor(FG_WHITE)".
    @WilMen Aber trotzdem danke für deine Hilfe. Obwohl ich glaub das es nicht so gut ist system("...") zu verwenden.



  • Jap, Stromberg hat in allen Punkten recht 🙂

    BTW: Wenn du schon "using namespace ic::shorties" hast kannst du ja auch das Shorty für con.clearColor verwenden:

    clrcol(FG_WHITE | BG_RED);
    

    MfG SideWinder


Anmelden zum Antworten