Farben in C++
-
Hallo,
ich möchte mein Programm farblich etwas gestalten. Mir stehen ja grundsätzlich 16 Vordergrundfarben und 16 Hintergrundfarben zur Verfügung. Kurioserweise ändert sich bei einer neuen Color-Anweisung die Farbe der gesamten Console und nicht nur eines bestimmten Teils des Bildschirms:
#include <iostream.h> using namespace std; int main() { system("color 0E"); cout << "Text 1" << endl; system("color F0"); cout << "Text 2" << endl; return 0; }So wie ich es noch von Basic her kenne, müssten jetzt die Texte 1 und 2 in unterschiedlichen Farben dargestellt werden. Warum klappt das aber in C++ nicht? Lasse ich das Programm ausführen, so werden nämlich beide Texte, also auch der erste, in der Farbe F0 dargestellt.
Wie kann man das umgehen?
m. f. G.
Leader87
-
Leader87 schrieb:
Kurioserweise ändert sich bei einer neuen Color-Anweisung die Farbe der gesamten Console und nicht nur eines bestimmten Teils des Bildschirms
Wieso kurioserweise? Hast Du Dir mal die Hilfedatei zur Color-Anweisung durchgelesen? Es wird die gesamte Konsole angepasst. Der Konsolenbefehl 'color' hat auch nichts mit dem gleichlautenden BASIC-Befehl zu tun.
Falls Du Dich unter Windows befindest (wovon ich mal ausgehe), solltest Du Dir mal die Funktion 'SetConsoleMode' aus dem Header <windows.h> anschauen.
-
Vielleicht hilft Dir dies auf Basis MS Windows etwas weiter:
#include <windows.h> #include <conio.h> #include <cstdio> #include <iostream> using namespace std; void textcolor(int color) { SetConsoleTextAttribute( ::GetStdHandle(STD_OUTPUT_HANDLE), color ); } int main() { textcolor(RED); cout << "Das ist rot" << endl; textcolor(BLUE); cout << "Das ist blau" << endl; textcolor(GREEN); cout << "Das ist gr" << char(129) << "n" << endl; // Umlaut ü textcolor(WHITE); cout << "Das ist weiss" << endl << endl; for(int i=0; i<16; ++i) { textcolor(i); cout << "Das ist Farbe: " << i << endl; } cout << endl << "H" << char(148) << "fliche G" << char(132) << "ste im Gr" << char(129) << "nen haben Spa" << char(225) << "." << endl; cout << char(132) << char(148) << char(129) << char(225) << endl; getch(); }
-
Farben in C++
Nein.
Mir stehen ja grundsätzlich 16 Vordergrundfarben und 16 Hintergrundfarben zur Verfügung.
Grundsätzlich stehen dir bei C++ keine Farben zur Verfügung.
-
die Konsole ist nict cpp, sonder du Programmiert mit C++ ein Programm dessen Ausgabe auf der Konsole ist. So wärs richtig, und die Konsole kann verschiedene Farben Darstellen, mit der oben im Programmteststehenden Conio. wichtig zu wissen ist aber, dass es keine Standartlibrary ist d.h. du musst sie noch installieren. Einfach mal nach googeln.