Kleinen Texteditor programmieren
-
Hallo erstmal ^^
Ich will es jetzt nicht spannend machen also komme ich direkt zur Sache
Ich möchte einen kleinen Texteditor für eine Linux-Konsole schreiben wo man
was rein schreiben kann und der speichert es ab. Mehr nicht! Ich bin zuzeit noch bei der Planung und stehe vor dem Problem, dass ich wenn ich die Eingabe mit gets(); mache niemals die Enter-Taste drücken kann, da sonst gets speichert. Kann mir einer eine Lösung für das Probelm sagen wie ich das machen kann das trotz gedrückter Entertaste gets nicht speichert?Danke für eure Hilfe.
-
Also ich finde die Frage jetzt komisch.
Du willst einen Konsolenbasierten Texteditor schreiben, wenn ich das richtig erfahren habe, das könntest du direkt im C++ Forum posten, da du dafür nur auf die standart lib zugreifst und das rein was mit c++ zu tun, sprich du brauchst nur die filestram klassen aus der std von c++ und ein menü...wenn du willst das das programm speziell auf tastatur ereignise noch reagiert, dann solltest du ins unix/linux forum, da du auf desen kernel zugreifen musst und das nix mit c++ sondern mit dem c-kernel von linux zu tun hat
Mfg Wikinger75!
-
Fred vom Jupiter 2 schrieb:
Hallo erstmal ^^
Ich will es jetzt nicht spannend machen also komme ich direkt zur Sache
Ich möchte einen kleinen Texteditor für eine Linux-Konsole schreiben wo man
was rein schreiben kann und der speichert es ab. Mehr nicht! Ich bin zuzeit noch bei der Planung und stehe vor dem Problem, dass ich wenn ich die Eingabe mit gets(); mache niemals die Enter-Taste drücken kann, da sonst gets speichert. Kann mir einer eine Lösung für das Probelm sagen wie ich das machen kann das trotz gedrückter Entertaste gets nicht speichert?Danke für eure Hilfe.
Die Funktion gets speichert die eingegebenen Zeichen in einem Puffer. Was danach mit dem Pufferinhalt passiert, entscheidest du.
Lösung klar?
MfG.
-
du kannst ja direkt auf den tastaturbuffer zugreifen, oder gar auf den Physicalsichen Speicher (keine ahnung wie das bei linux funktioniert) , geht auch direkt über interrupts BIOS-Interrupt 16h, vielleicht kannst du die tasteneingabe deiner konsoloe sogar vom window manager abfangen...keine ahnung wie das Xwindow system aufgebaut ist, wie du siehst, es gibt unzählige möglichkeiten
Aus google.com:
Die Startadresse des Tastaturpuffers ist in der Adresse 0x0040:0x0080 abgelegt. Anfang und Ende der Zeichenkette im Puffer sind in den Adressen 0x0040:0x001A und 0x0040:0x001C abgelegt. Die Zeichenkette beginnt im Speicher bei 0x0040:Pufferstartadresse. (hier wird vom RAM gesprochen)
-
man kanns auch übertreiben. Behelfe dir doch einfach so das du jeweils in einer schleife eine zeile einliest und in die datei oder einen puffer schreibst. Und wenn der Benutzer einen bestimmten text oder eine leerzeile eingibt beendest du das ganze