Hallo Leute!
Ich werde bald bekloppt mit dieser curses.h. Die Frage richtet sich an
alle Linuxer unter euch, die schon mal mit dieser Bibliothek was zutun
hatten.
Und zwar habe ich folgendes vor:
die Schriftfarbe der Strings "Farbe1", "Farbe2" und "Farbe3" sollen
jeweils unterschiedlich im gleichen Fenster sein.
Das heißt die Farbe des Strings "Farbe1" soll in diesem Beispiel rot
sein. usw.
Was mache ich falsch? Es erscheint immer nur die letze Farbe....
PS: Zum Übersetzen des Codes muss der Schalter -lncurses beim gcc
eingeschaltet werden. Auch die Reihenfolge der Schalter ist entscheidend
(bescheurt).
>PS: Zum Übersetzen des Codes muss der Schalter -lncurses beim gcc>eingeschaltet werden. Auch die Reihenfolge der Schalter ist entscheidend>(bescheurt).>gcc -lncurses -o ./test.app ./test.c
Was ist daran unlogisch?
Gast
dass es mein Compiler nicht übersetzt, wenn ich zuerst den Schalter "-o"
und DANACH den Schalter "-lncurses" schalte.
Finde es nich besonders logisch, hier eine Reihenfolge beachten zu
müssen...
Zum eigentlichen Problem: Werde es mal in einer Systemkonsole
(Strg-Alt-1) versuchen und nicht in einer Konsole unter KDE.
Gruß
j.k. schrieb:
> dass es mein Compiler nicht übersetzt, wenn ich zuerst den Schalter "-o"> und DANACH den Schalter "-lncurses" schalte.
Dann muß irgendwas mit deiner Installation kaputt sein. Bei mir
funktioniert das wie erwartet.
> Zum eigentlichen Problem: Werde es mal in einer Systemkonsole> (Strg-Alt-1) versuchen und nicht in einer Konsole unter KDE.
Ich habe es gerade in der Konsole von KDE versucht, und da funktioniert
es.
Du weisst aber, was -o bedeutet?
gcc [-c|-S|-E] [-std=standard] [-g] [-pg] [-Olevel] [-Wwarn...]
[-pedantic] [-Idir...] [-Ldir...] [-Dmacro[=defn]...] [-Umacro]
[-foption...] [-mmachine-option...] [-o outfile] infile...
Da -o das Outfile aendert ist es nur logisch, dass direkt nach dem
Schalter der Dateiname kommen muss.
Auch in einer kde-Konsole funktioniert es bei mir.
Gast
An dem Curses-Programm fehlt ja so ziemlich alles.
Regel Nr 1 bei Curses: Mindestens einen SIGINT Signal-Handler
installieren, der bei Programmabbruch noch schnell den alten
Terminal-Status wiederherstellt.
Dann fehlt schon in normalen Ablauf ein endwin(). Ein has_colors()-Test
fehlt. Die üblichen cbreak()-, noechon()- und nonl()-Aufrufe fehlen. Es
fehlen jeweils attroff()-Aufrufe.
Und mal richtig zusammenlinken ist auch eine gute Idee. Bibiotheken
(-l...) kommen nach den Objekt-Dateien (.o) und C-Dateien (*.c).
Also bei mir funktionierts leider auch nicht unter einer anderen Konsole
:(
Könntet mir vielleicht jemand das Programm so umändern, dass es
funktioniert?!
Vielen dank
Könnte vielleicht mal jemand, bei dem es nicht funktioniert, sich
äußern, welches Terminal überhaupt benutzt wird? Es gibt sicherlich auch
Terminals, die nur ganze Zeilen in einer Farbe einfärben können.
jk, kannst du ein "infocmp" von deinem terminal schicken ??
und den set output von der shell, auf der du es probierst ??
fallst installiert auch den strace output.
lg roman