You are not logged in.

  • Login

1

Monday, October 23rd 2006, 6:00pm

consolen anwendung schriftfarbe endern

hallo

ich möchte in einer c consolenanwendung die schriftfarbe und hintergrundfarbe mancher zeilen färben die komplette farbe kann man ja mit system("color"); endern aber ich möchte wie gesagt nur einzelne zeilen färben kann mir da jemand weiterhelfen ??

danke im vorraus

2

Monday, October 23rd 2006, 6:41pm

Einzelne Zeilen kann man meines Wissens nach nicht ändern

3

Monday, October 23rd 2006, 6:44pm

hmm ich weis nicht ob es geht ich weis nur das es bei qbasic geht aber wenn qb das kann sollte c sowas erstrecht können

4

Monday, October 23rd 2006, 8:19pm

Quoted from ""D3mog""

hmm ich weis nicht ob es geht ich weis nur das es bei qbasic geht aber wenn qb das kann sollte c sowas erstrecht können


Zumindest wirds Kompliziert, könnte ich mir denken.

BTW. das könnte interresant sein.

5

Monday, October 23rd 2006, 8:50pm

ich glaube mir fehlen die passenden .h dateien

6

Monday, October 23rd 2006, 8:53pm

Ist halb so wild.

C Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <windows.h>
 
WORD SetColor(WORD new_color)
{
	WORD old_color=0;
	HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
	CONSOLE_SCREEN_BUFFER_INFO csbi;
	GetConsoleScreenBufferInfo(hStdOut,&csbi);
	old_color = csbi.wAttributes;
	SetConsoleTextAttribute(hStdOut,new_color);
 
	return old_color;
}
 
int main()
{
	std::cout<<"Original Farben"<<std::endl;
	WORD old_color = SetColor(FOREGROUND_GREEN|FOREGROUND_INTENSITY);
	std::cout<<"Die neue Farbe."<<std::endl;
	SetColor(old_color);
	std::cout<<"Wieder die original Farbe"<<std::endl;
 
	return 0;
}

Die Auflistung der gültigen Konstanten findest du hier:hier

Im Netz gibt es diverse Klassen die diese Funktionalität kapseln.
Auf www.c-plusplus.de findest du ne Klasse die nennt sich ImprovedConsole oder so. Die soll wohl ziemlich korrekt sein,hab da aber selber noch nix mit gemacht.

EDIT:sehe gerade dass es C sein soll,also vergiß dass mit der Klasse :wink:

Gruß void

7

Monday, October 23rd 2006, 9:32pm

genau sowas habb ich gesucht vielen dank :)

allerdings ich im moment noch vergebens nach den farbcodes

8

Monday, October 23rd 2006, 10:13pm

Dem Link unter Character Attributes folgen :wink:

Gruß void

9

Tuesday, October 24th 2006, 6:42pm

geil danke ach und ist das jetzt nur windows kompatiebel ? geht es unter linux auch irgentwie ?

10

Tuesday, October 24th 2006, 6:52pm

Der obige Code läuft nur auf Windows.
Für Linux such mal nach ANSI Escape Sequenzen oder ncurses.

Gruß void

11

Tuesday, October 24th 2006, 7:33pm

da mich die farbige bash auch schon immer interessiert hat:

http://www.pro-linux.de/news/2002/4951.html

Quoted

Die ANSI-Sequenz besteht aus zwei Teilen: einer Attributsequenz, die mit einem ASCII-ESC eingeleitet wird und bestimmt, ob der Text in hell, dunkel oder blinkend dargestellt wird, und der Farbsequenz, die die Farbe des Textes bestimmt.


Die Kommentare sind übrigens ausnahmsweise auch sehr interessant
(schön, wenn mal nicht über KDE/Gnome, Wissen/Unwissen gestritten wird)

12

Tuesday, October 24th 2006, 8:52pm

Nur um es noch der Vollständigkeit halber zu erwähnen.
Die Escapesequenzen würden theoretisch auch unter Windows funktionieren.
Allerdings wird dafür der Ansi.sys Treiber benötigt der,nach ner Standard-Windowsinstallation,schon ewig nicht mehr geladen wird.
Somit kannst du davon ausgehen dass Code mit Escape Sequenzen auf ca. 98% der Zielrechner nicht wie erwartet arbeiten wird.

Gruß void

13

Tuesday, October 24th 2006, 10:13pm

Quoted from ""d0nUt""

Die Kommentare sind übrigens ausnahmsweise auch sehr interessant
(schön, wenn mal nicht über KDE/Gnome, Wissen/Unwissen gestritten wird)

Besser:
"Die Kommentare sind übrigens ausnahmsweise auch sehr interessant
(schön, wenn mal nicht über KDE/Gnome, Unwissen/Wissen gestritten wird)"

Hihi

Similar threads

Social bookmarks