textcolor in Turbo C++ funktioniert nicht (clrscr und gotoxy schon)



  • Ich hab mal zum Spaß Borland Turbo C++ 3.0 ausprobiert und hab da ein Problem (dieses tritt übrigens auch bei Turbo C++ 1.01 auf, das man unter http://bdn.borland.com/article/images/21751/tcpp101.zip ja kostenlos herunterladen kann): Wenn ich die Funktion textcolor oder textbackground aufrufe und ihr einen Wert übergebe (z.B. RED oder 1), dann gibt es keinen Fehler, doch trotzdem macht diese Funktion nichts. Die Textfarbe bleibt immer gleich. Funktionen wie clrscr oder gotoxy funktionieren dagegen tadellos. Woran liegt das? Kann mir da jemand helfen?



  • hast du die BGI (borland graphik interface) im zugriffspfad oder
    alternativ die BGI mit in die exe gelinkt?

    mfg f.-th.



  • Ähm, nein, hab ich nicht. Dazu zwei Fragen:
    1. Wie macht man das?
    2. Wieso muß ich irgendein Grafikinterface einbauen, wo ich doch gar keine Grafik habe? Zumal textcolor ja nun eigentlich eine ganz normale Funktion der conio.h ist. (Bei Turbo Pascal brauche ich dafür ja auch keine BGI.) Ist das wirklich die tatsächliche dafür vorgesehene Lösung?



  • hi

    nimm cprintf

    clrscr();
        textcolor(RED);
        gotoxy(8,5);
        cprintf("hola");
    


  • Vielen Dank für Die Antwort.

    O.k., ich hab mal in die Hilfe geguckt und gesehen, warum das so ist: cprintf schreibt direkt auf das Textfenster des Bildschirms, während cout und printf auf den Standard-Ausgabe-Stream schreiben.

    Deshalb zwei weitere Fragen:
    1. Wie lautet das Eingabeequivalent von cprintf? Wie kann ich also Farben für Text einstellen, der gerade eingegeben wird?

    textcolor (RED);
    cin>>variable;
    

    2. Gibt es eine Möglichkeit, cout irgendwie "umzuleiten", daß es auch direkt auf den Bildschirm schreibt? Die Verwendung von cprintf würde mir nämlich mächtig auf die Nerven gehen. Nicht auszudenken, wenn ich mal ein Win32-Konsolenprogramm damit kompilieren will und statt ein paar kleiner Änderungen gleich jede Ausgabefunktion ändern muß.



  • für win32 konsole nutze die improved konsole aus dem dos/win32 faq.
    vielleicht solltest du irgendwann noch einen weiteren compiler ziehen.
    die farbe einer variablen kannst du bei ausgabe über cprintf visualisieren.

    so long



  • Turbo C++ ist natürlich nicht der Compiler, den ich normalerweise benutze. Dafür nehme ich Visual C++ und dort weiß ich natürlich, wie man Farben einstellt. Mit Turbo C++ spiele ich im Moment nur so ein bißchen rum. Aber trotzdem ist es natürlich interessant, sowas mal zu wissen.
    Was die Färbung einer Variablen betrifft: Mir ging es nicht darum, ihre Ausgabe farbig darszustellen, sondern während der Eingabe, also während der Text per Tastatur eingetippt wird, soll das, was dabei auf dem Bildschirm erscheint, farbig werden. Also so:

    cout<<"Eingabe: ";
    textcolor (RED);
    cin>>variable;
    textcolor (LIGHTGRAY);
    cout<<"Ihre Eingabe lautete: "<<variable;
    

    Statt cout muß ich (sofern es nichts besseres gibt) cprintf schreiben, das weiß ich ja schon. Aber was ist jetzt das analoge Äguivalent zu cin?



  • Dafür müsste ich was haben....
    Momentos 😃



  • Habs noch irgendwo gefunden 😉

    void meineEingabe(char *str,int size)
    {
       char c[2] = "x";
       int  i = 0;
    
       textcolor(1);
       while(i<size)
       {
          c[0] = getch();
          if(c[0]==13) break;
    
          str[i] = c[0];
          cprintf(c);
    
          ++i;
       }
    
       str[i] = 0;
    
    }
    

    Du müsstest aber noch jede Menge Sachen einbauen um die eingabe zu perfektionieren wie zB Backspace unterstützung und so 👍



  • Ich meinte eigentlich normale Funktionen. Ich hätte einfach nur gern gewußt, ob es analog zu cprintf auch eine Eingabefunktion gibt. Klar kann man sich sowas in dieser Weise zusammenbasteln, aber es ging mir eben darum, ob es schon etwas Vorgefertigtes gibt.



  • Hat sich erledigt. Offensichtlich ist cscanf die analoge Funktion.


Anmelden zum Antworten