2017-02-20 8 views
-1

[Dies ist mein erster Beitrag überhaupt. bitte verschlinge mich nicht]Farbe Text ohne Konsole Ausgabe?

Hey Peeps!

ich ziemlich neu bin (wie nur wenige Stunden) bis C++

ich keine anderen „High“ Sprachen lernen hat noch, ich habe die meisten Dinge in Windows CMD, und ziemlich bekannt sind, mit seinen Konsole jetzt, aber es ist Mangel an Funktionen treibt mich woanders hin.

Also, um C++ zu lernen, benutze ich momentan Sololearn und nur recherchieren, nur um einige kleine Projekte von Batch zu portieren, ich möchte nicht GUI oder Erweiterungen noch verwenden und ich verwende CodeBlocks für die Konsole Anwendungen.

Jetzt zu meinem Problem;

war ich nur über eine ordentliche Funktion zum Einfärben von Text zu tun, und ich modifizierte, um einen Code-Schnipsel (hier: Source) in dieser hier:

void colorText(string ct, int col) 
{ 

    HANDLE hConsole; 
    hConsole = GetStdHandle(STD_OUTPUT_HANDLE); 

    FlushConsoleInputBuffer(hConsole); 
    SetConsoleTextAttribute(hConsole, col); 

     cout << ct; 

    SetConsoleTextAttribute(hConsole, 15); //set back to black background and white text 
} 

die eigentlich nur groß, arbeitet nennt es mit

colorText("This my Text",12); 

Zum Beispiel. Tho, ich hässlich Console Ausgänge mit, die wie folgt aussieht:

CMD.EXE was started with the Path given above as the current Directory. 
UNC-Paths aren't supported. 
The Windows - Directory will be set as current Directory. 

Nun hat jemand eine Idee hat, wie dies zu vermeiden, indem Sie eine andere Technik zur Färbung verwendet wird, oder das Konsolenfenster Muting? Ich würde schätzen, auch wenn jemand vielleicht einen Ort kennt C++ ein bisschen mehr professionell, Tutorials, Webseiten ..

für jede Hilfe,

Ich bin dankbar zu lernen

aufrichtig clragon

+0

Ich bin ziemlich sicher, dass diese Ausgabe hat nichts mit den Farben zu tun, und ist nur durch die Art und Weise verursacht, wie Code :: Blocks das Terminal startet. Erscheint es auch auf einer einfachen "Hallo Welt"? – Quentin

+0

@Quentin Nein, eigentlich nicht. Die normale Ausgabe davon ist die Runtime und "drücken Sie eine beliebige Taste" Die Color-Funktion fügt die oben genannten, ich habe das getestet, indem Sie den Anruf kommentieren. – clragon

+0

Wenn Sie lernen möchten, beginnen Sie nicht mit der schlechtesten IDE, um dies zu tun. Laden Sie [Visual Studio Community] (https://www.visualstudio.com/vs/community/) herunter und nehmen Sie es von dort. Code :: Blocks hat schlechte Standardwerte, eine Tendenz, Anwendungen zu bauen, und wird ziemlich nicht unterstützt. – IInspectable

Antwort

0

GetStdHandle wahrscheinlich zurückkehrt ein Handle, das mit der ausgeführten Debug-Konsole nicht kompatibel ist. Wenn Sie die Funktion einmal beim Programmstart aufrufen und den Griff halten, funktioniert das möglicherweise besser.

+0

Ich habe gerade versucht Visual Studio ... und wow. Es geht nur um den Debugger. Visual Studio hat absolut kein Problem damit, und der Fehler tritt nicht auf. Danke fürs Helfen – clragon