Shell/Konsole schreiben
-
Ich habe mittlerweile begonnen die konsole zu schreiben.
Die Eingabe durch den Benutzer erfolgt nun durch folgendes Muster:befehlsname par1 par2 par3Das Parsen der Eingabe hab ich folgendermaßen realisiert:
int main( int argc, char * argv[] ) { while(1) { parse( argc, argv ); } } void parse(int argc, const char * const * argv) { vector<string> args; for (int i = 0; i < argc; i++) args.push_back(argv[i]); }Die strings werden anschließen in die entsprechenden Variablentypen umgewandelt.
Nun wäre es noch schön, in der Konsole zusätzlich eine "history" (mit pfeiltaste oben) und eine "autovervollständigung" (tabulator) einzurichten.
Hat jemand eine Idee wie man das machen könnte?
Gibt es dazu für Linux Bibliotheken die einem sowas erleichtern?
Danke für alle die sich Zeit nehmen dies durchzulesen.
-
hallo 123 schrieb:
Nun wäre es noch schön, in der Konsole zusätzlich eine "history" (mit pfeiltaste oben) und eine "autovervollständigung" (tabulator) einzurichten.
Hat jemand eine Idee wie man das machen könnte?Nicht mit Standard-C++ Bordmitteln. Das kennt nämlich keine Pfeiltaste und Tabulatortaste - und in der Konsole den Befehl zu verfollständigen klappt auch nur mit OS-Spezifischen Konsole-Funktionen.
Daher stell deine Frage am besten im jeweiligen OS-Unterforum in einem neuen Thread
-
hallo 123 schrieb:
void parse(int argc, const char * const * argv) { vector<string> args; for (int i = 0; i < argc; i++) args.push_back(argv[i]); }WArum nicht einfach per
vector<string> args(argv,argv+argc);Nun wäre es noch schön, in der Konsole zusätzlich eine "history" (mit pfeiltaste oben) und eine "autovervollständigung" (tabulator) einzurichten.
Hat jemand eine Idee wie man das machen könnte?
Gibt es dazu für Linux Bibliotheken die einem sowas erleichtern?
Danke für alle die sich Zeit nehmen dies durchzulesen.Da mußt du die Tasten in deinem Programm abfangen (das geht nicht mit C++ Bordmitteln, aber mit Funktionen deines Systems) und darauf reagieren.
-
Daher stell deine Frage am besten im jeweiligen OS-Unterforum in einem neuen Thread

Danke, das werd ich gleich machen!