Re: C-Befehle

Post Reply
Message
Author
J.R.

Re: C-Befehle

#1 Post by J.R. »

Danke zunächst mal für Deinen Hinweis. Man kann in den Man-Pages wirklich über dir C-Befehle erhalten. Ich hab nun auch unter KDevelop eine Hilfe gefunden, doch irgendwie bin ich noch nicht so richtig glücklich. Wenn ich nicht genau weiß wie der Befehl lautet, was er machen soll, ist allerdings genauso schwierig (besonders bei C++, wo keine Hilfe da ist).

Zu Deiner Frage mit 'getchr()', zunächst mal: T'schuldigung! Ich hab mich verschrieben! Er heißt: 'getchar ()' und zwar kann man damit den SdtIn-Puffer auslesen bis zum nächsten Enter ('
'). Ich hab ihn übrigens dank Deiner Hilfe gefunden!

Andi

Re: Re: C-Befehle

#2 Post by Andi »

> Wenn ich nicht genau weiß wie der Befehl lautet, was er machen
> soll, ist allerdings genauso schwierig (besonders bei C++, wo keine Hilfe da ist).

versuch mal
apropos getchar
->das zeigt dir alle man pages, wo dieser Begriff im Index steht. Wenn du nicht genau weisst, was die Funktion tun soll kannst du also mal mehrere Begriffe versuchen. Näheres siehe
man apropos

Und ansonsten bist du sowieso aufgeschmissen - es gibt wohl kaum eine Hilfe, die dir sagt was du programmieren sollst ;)

CU
Andi

J.R.

Re: Re: C-Befehle

#3 Post by J.R. »

Danke zunächst für den neuen Befehl: 'apropos'
...DOCH: Auch er scheint nur auf die gleichen Man-Pages wie 'man' zuzugreifen und da gibts nun mal leider keine Hilfe für C++.

Nun noch ein paar Worte zu dem Thema: "Nicht wissen was programmieren":
Mhhmm ... ich hab mich da ein biss'l verdreht ausgedrückt! Natürlich weiß ich was ich programmieren will, doch ein Beispiel für mein Problem der Befehlsuche: Ich will die Farbe des Textes verändern, welcher dann mit 'cout' (C++-Befehl!) ausgegeben wird. 'color' , 'textcolor' oder sonstiges gibt es nicht. Aus welcher Online-Hilfe bekomme ich nun heraus welchen Befehl ich nehmen muß??

bakunin
Posts: 597
Joined: 16. Aug 1999 6:44
Location: Lorsch (Südhessen)
Contact:

Re: Re: C-Befehle

#4 Post by bakunin »

> Ich will die Farbe des Textes verändern,
> welcher dann mit 'cout' (C++-Befehl!)
> ausgegeben wird. 'color' , 'textcolor' oder
> sonstiges gibt es nicht. Aus welcher
> Online-Hilfe bekomme ich nun heraus
> welchen Befehl ich nehmen muß??

Da hat C/C++ nichts eingebaut, aber es gibt Terminal-Kontrollsequenzen, die eigentlich jedes Terminal versteht (linux, xterm, ...).

Hier ein Beispielprogramm:

<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
#include <stdio.h>

typedef enum { fg_black = 30, fg_red = 31, fg_green = 32, fg_brown = 33,
fg_blue = 34, fg_violet = 35, fg_cyan = 36, fg_grey = 37,
fg_dark_grey = 130, fg_light_red = 131, fg_light_green = 132,
fg_yellow = 133, fg_light_blue = 134, fg_light_violet = 135,
fg_light_cyan = 136, fg_light_white = 137, fg_default = 39
} fg_color_t;


typedef enum { bg_black = 40, bg_red = 41, bg_green = 42, bg_brown = 43,
bg_blue = 44, bg_violet = 45, bg_cyan = 46, bg_grey = 47,
bg_default = 49
} bg_color_t;

void
set_color (fg_color_t fg, bg_color_t bg, int blink)
{
int light = 0;

if (fg > 100)
{
light = 1;
fg -= 100;
}
printf ("\033[%i;%i%s%sm", fg, bg, light ? ";1" : "", blink ? ";5" : "");
}

void
cls (void)
{
printf ("\033[H\033[J");
}

int
main (void)
{
cls ();
set_color (fg_cyan, bg_red, 0);
printf ("Hello, world\<!--no-->n");
set_color (fg_default, bg_default, 0);
printf ("Hallo!\<!--no-->n");

return 0;
}
</font><hr></pre></blockquote>

Sebastian Ude

Re: Re: C-Befehle

#5 Post by Sebastian Ude »

Also die Colorierung geht in dem man dem Terminal Escape-Sequenzen sendet, das sieht dann in C++ z.B. so aus:

cout << "\033[30;42m";

Das ganze geht also so: \033, dann ein ']', dann die Optionen getrennt durch ';'s und am Ende ein 'm'.

Was die einzelnen Optionen angeht halte dich an diese Tabelle:

Farbe Vordergrund Hintergrund
Schwarz 30 40
Rot 31 41
Grün 32 42
Gelb 33 43
Blau 34 44
Magenta 35 45
Cyan 36 46
Weiss 37 47

Fettdruck: 1
Unterstrichen: 2

Alles zurücksetzen: 0

Hier ein kleines Bsp:

#include <iostream.h>

int main(void)
{
cout << "\033[32;40m"; // Grüner text, schwarzer Hintergrund
cout << "M.A.T.R.I.X";
cout << "\033[0m
"; // Setze das Terminal zurück und ein newline
return(0);
}

J.R.

Farben ändern im Terminal

#6 Post by J.R. »

Danke Leute !!!
Obwohl C++ nun leider keinen eigenen Befehl kennt, muß ich sagen, daß mir die ESC-Sequencen wirklich gut gefallen und ich an euch noch ein mal ein großen Lob senden muß, daß Ihr mir weiterhelft!
Wenn ich wieder mal ein Problem mit C++ haben werde (was bestimmt kommt), dann versuch ich's das nächste Mal auch wieder hier!

Tschüß !
J.R.

Post Reply