GNU Readline
-
Heyho,
Ich möchte mittels der libreadline einen Text ausgeben, und dann diese Zeile löschen und eine neue drüber schreiben(oder gleich editieren).
Das könnte dann zb so aussehen:
#include<cstdio> #include<cstdlib> #include<readline/readline.h> #include<readline/history.h> int main() { const char start=NULL; const char *asdf=0; while(1) { int from=0, to=100; // ? was geben die Werte überhaupt an? asdf=readline("# "); rl_insert_text(asdf); // sollte das nicht Text ausgeben? start=readline(" "); //soll nur verhindern das er den Text sofort löscht rl_delete_text(from,to); //das den Text löschen? } return 0; }
Doch wie kann ich nun wirklich den Text den ich auf der Konsole ausgebe ändern?
Also das zb das Programm das hier ausgibt:
Menü - was wollen sie tun?
und wenn man irgendwas drückt verschwindet der erste Test und wird durch
Wird ausgeführt
oda ka was ersetzt.
mfg blacksoul
-
Readline ist dazu da um vom Benutzer Eingaben einzulesen. Das was du willst kannst du mit ncurses erledigen (also deine Ausgaben manipulieren) und Readline benutzt du dann um die Eingaben entgegen zu nehmen (Readline kann ziemlich viel, viele GNU Tools verwenden sie, zum Beispiel Bash oder BC).
-
ich will ja nichts manipulieren, jediglich die Ausgabe verändern, sodass ich praktisch eine GUI im Terminal habe. Gibt ja da so Programme, zb der Text-basierte MSN Client TMSNC.
-
Alles klar! Ich benötige also auf jeden Fall ncurses, nur für die Eingabe etc brauch ich evt. readline, aber dies ist optional.
-
blacksoul schrieb:
ich will ja nichts manipulieren, jediglich die Ausgabe verändern, sodass ich praktisch eine GUI im Terminal habe. Gibt ja da so Programme, zb der Text-basierte MSN Client TMSNC.
Hör auf die klügere Version von dir