Forum: PC-Programmierung Text in anderer Farbe darstellen


von Klaus (Gast)


Lesenswert?

Gibt es eine Methode den Text in C den Ausgabetext in der Konsole in 
einer anderen Farbe anzuzeigen? Die Idee ist die, dass ich 
Fehlermeldungen in anderer Farbe anzeige.

Danke

: Verschoben durch Moderator
von Yalu X. (yalu) (Moderator)


Lesenswert?

Das hängt von der Konsole ab. Interpretiert sie ANSI-Escape-Sequenzen,
findest du hier weitere Informationen:

  http://en.wikipedia.org/wiki/ANSI_escape_code

Oder nimm die Ncurses-Bibliothek:

  http://www.gnu.org/software/ncurses/

von Martin (Gast)


Lesenswert?

Ich verstehs einfach nicht...


Was mit Menschen im Kopf passieren muss, damit sie der Meinung sind, 
dass solche eine Frage zu verstehen und aus technischer Sicht überhaupt 
eindeutig beantwortbar ist.

von Klaus (Gast)


Lesenswert?

Leider steht mir diese Bibliothek unter WIndows nicht zur verfügung. 
Gibt es eine die für alle OS geht?

von wubeldubel (Gast)


Lesenswert?

Für Windows gibt es pdcurses, das ist weitestgehend kompatibel.

von SummerWilli (Gast)


Lesenswert?

>Ich verstehs einfach nicht...
>
>Was mit Menschen im Kopf passieren muss, damit sie der Meinung sind,
>dass solche eine Frage zu verstehen und aus technischer Sicht überhaupt
>eindeutig beantwortbar ist.

Ich verstehe nicht, was Du uns sagen willst. Die Frage war doch 
eindeutig gestellt.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Die ANSI-Sequenzen sollten auch in MSDOS/Windows gehen, wenn der
ANSI.SYS-Treiber geladen ist:

  http://en.wikipedia.org/wiki/ANSI.SYS

Mit folgendem Beispiel kannst du sie testen:
1
#include <stdio.h>
2
3
#define CSI "\033["
4
#define N   CSI"0m"
5
#define SW  CSI"30m"
6
#define RT  CSI"31m"
7
#define GN  CSI"32m"
8
#define GE  CSI"33m"
9
#define BL  CSI"34m"
10
#define MA  CSI"35m"
11
#define CY  CSI"36m"
12
#define WS  CSI"37m"
13
14
int main(void) {
15
  printf("Die Farben "RT"rot"N", "GN"grün"N", "GE"gelb"N", "
16
      BL"blau"N", "MA"magenta"N" und "CY"cyan"N"\n");
17
18
  return 0;
19
}

Ansonsten gibt noch das Console-API von Windows, das aber natürlich nur
für Windows funktioniert:

  http://msdn.microsoft.com/en-us/library/ms682010%28v=vs.85%29.aspx

Du könntest über Ncurses und das Console-API einen gemmeinsamen Wrapper
schreiben, um deine Software portabel zu machen.

wubeldubel schrieb:
> Für Windows gibt es pdcurses, das ist weitestgehend kompatibel.

Oder das, ich kenne es aber nur vom Hörensagen und habe es selbst noch
nie verwendet.

von Mops (Gast)


Lesenswert?

Für Windows hatte Rufus irgendwann einmal auf diesen Wrapper aufmerksam 
gemacht: http://www.tbkoenig.de/files/conioex/conioex.zip

Portabel ist dass natürlich nicht wirklich.

von Rolf M. (rmagnus)


Lesenswert?

SummerWilli schrieb:
>>Ich verstehs einfach nicht...
>>
>>Was mit Menschen im Kopf passieren muss, damit sie der Meinung sind,
>>dass solche eine Frage zu verstehen und aus technischer Sicht überhaupt
>>eindeutig beantwortbar ist.
>
> Ich verstehe nicht, was Du uns sagen willst. Die Frage war doch
> eindeutig gestellt.

Nein. Daß das für Windows und anscheinend für dessen Fenster für die 
"Eingabeaufforderung" sein soll, hast du erst später erwähnt. Erst da 
war klar, was für eine "Konsole" du eigentlich meinst.
Deine Frage ist ungefähr so wie: Meine Kofferraum-Entriegelung ist 
kaputt. Wie lautet die Teilenummer für das Ersatzteil?

von SummerWilli (Gast)


Lesenswert?

Klaus hat die Frage aber eindeutig gestellt. Dass eine Konsole kein 
Möbestück ist sollte hier klar sein. Wenn man aber keine Antwort weiß, 
dann liegt das nicht immer am Fragesteller.

von Marco M. (marco_m)


Lesenswert?

SummerWilli schrieb:
> Klaus hat die Frage aber eindeutig gestellt. Dass eine Konsole kein
> Möbestück ist sollte hier klar sein. Wenn man aber keine Antwort weiß,
> dann liegt das nicht immer am Fragesteller.

Nö. Die Antwort für die Linux-Konsole sieht ganz anders aus als für die 
Windows-Konsole und der OP hat auch nicht dargelegt, wie die Ausgaben 
der Konsole eigentlich zustande kommen. Kann er in den Build-Prozess 
eingreifen? Und benutzt er wirklich die Windows-Konsole und nicht 
möglicherweise doch Cygwin/Mingw und kennt der Unterschied nicht?

Man sollte schon in der  Lage sein, seine Anliegen nachvollziehbar 
darzulegen.

von Michael K. (Gast)


Lesenswert?

SummerWilli schrieb:
> Klaus hat die Frage aber eindeutig gestellt. Dass eine Konsole kein
> Möbestück ist sollte hier klar sein. Wenn man aber keine Antwort weiß,
> dann liegt das nicht immer am Fragesteller.

Gibt es eine Methode in C auf einen Port zuzugreifen? Die Idee ist die, 
dass ich darüber was anzeigen will.

Und, wie geht das?

Wie, Port kann vieles bedeuten? USB-Port, Port am Mikrocontroller, ...
Ist das so wichtig? Ist doch klar formuliert, die Frage. Port und C. 
Jetzt bräuchte ich Deine Antwort ...

von Mikel M. (mikelm)


Lesenswert?

SummerWilli schrieb:
> Klaus hat die Frage aber eindeutig gestellt. Dass eine Konsole kein
> Möbestück ist sollte hier klar sein.

Ich nehme an Du wolltest Möbelstück schreiben. Möbe gibt es nicht.

Und ja mir ist klar das es sich bei einer Konsole um ein Möbelstück 
handelt!

z.B. hier
http://www.impressionen.de/shop/kategorie/wohnen/moebel/konsolen
oder hier
http://www.google.de/search?q=konsole+möbel&tbm=isch&tbo=u&source=univ&sa=X

 Der Begriff beschreibt eigentlich das Möbelstück auf dem früher das 
Terminal gestanden hat.
 Dem entsprechend ist er auch in der Ausgangsfrage absolut nichtssagend, 
da absolut gar nichts über das Ausgabegerät, was wohl gemeint ist in der 
Frage aussagt. Es gibt zig verschiedene Emulationen bzw Hardware die 
gemeint sein können.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.