C++ Mehrere Farben in der Konsole

Jonas Meyer

Mitglied
Hallo,
ich möchte gerne mehrere Farben in mein Konsole haben.

Code:
#include <iostream>
#include <windows.h>

int main()
{
system("color 02");//Grün auf Schwarzen Hintergrund.

  std::cout << "Hallo" << std::endl;
  std::cout << "Ihr" << std::endl;
  std::cout << "Test" << std::endl;
  return 0;

}


Nun möchte ich gerne das Hallo Rot und Ihr Blau haben und das Test soll Grün und Hallo und Ihr sollen nach einiger Zeit auch Grün werden. Leider hab ich keine Idee wie ich das machen soll...
 
Hi

SetConsoleTextAttribute:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms686047(v=vs.85).aspx

Der zweite Parameter ist die Farbe, wie vom system-color-Befehl bekannt.

Der erste Parameter braucht ein Handle auf die Konsole: GetStdHandle:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms683231(v=vs.85).aspx

Code:
C++:
//Einmal am Anfang
HANDLE han;
han = GetStdHandle(STD_OUTPUT_HANDLE);
if(han == INVALID_HANDLE_VALUE)
{
    //Fehler
}

//Zum Ändern der Farbe
SetConsoleTextAttribute(han, 0x02);

Gruß
 
Ok also ich hab das Thema auch gefunden aber es nicht verstanden...
//Einmal am Anfang
HANDLE han;
han = GetStdHandle(STD_OUTPUT_HANDLE);
if(han == INVALID_HANDLE_VALUE)
{
//Fehler
}

//Zum Ändern der Farbe
SetConsoleTextAttribute(han, 0x02);


Wie mach ich das denn jetzt mit der ausgabe also
SetConsoleTextAttribute(han, 0x02);
std::cout << " IHR";
Oder wie?
 
Ja genau.
Das andere Codestück muss nur vorher (ein einziges Mal) gemacht werden,
sonst funktionierts nicht.
 
Nach einer bestimmten Zeit?
Nicht eher nach einer bestimmten Ausgabe?

Nein, das geht nicht von allein.
Woher soll denn der Computer wissen, was du willst :rolleyes:

Wenn du die Farbe wieder ändern willst
brauchst du einfach ein zweites Mal SetConsoleTextAttribute.

Sowas Banales kann man aber wirklich einmal selbst ausprobieren.
Geht viel schneller, als hier auf eine Antwort zu warten.
 
OK ich bin aber nicht so der Profie und möchte das auch mehr zum Lehrnen machen und ich hab keine Ahnung wie ich zum beispiel 2 Sec. festlege und wie das dann ändern soll wenn es schon auf der Konsole steht
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück