Backspace mit der Improved Konsole?
-
Ich weiß ja nicht ov das nur bei mir ist, aber wenn man mit der Improved Konsole aus dem FAQ versucht einen Buchstaben den man eingibt rückgänig zu machen kommt nur ein Punkt. Kann ich die Backspace taste vieleicht doch irgendwie einbauen? Ich hab es irgendwie mit "if (getch() == 8)" probiert, das hat aber irgendwie nicht funktioniert. Da ich es dann auch irgendwie nicht hinbekommen hab die Y koordinate um eins zu verringern. Hätte vieleicht jemand ne Idee?
mfg Frusciante²
-
unsigned char chr; chr=getch(); if (chr==8) printf ("back");
erste idee...
du fängst den backspace ab und zeichnest neu (merkst dir, was stand und reproduzierst es ohne das letzte zeichen) ..so irgendwie..übrigens: ein zeichen kannst du ja immer mit "\b" rücksetzen.
bei mehreren muss man selber ran.
-
Leider funktioniert das mit /b nicht, genauso wenn ich einen Zeilenumbruch mit /n versuche. Da kommen dann immer irgendwelche Fehlgeschlagen zeichen.
Zu dem printf ("back"), wir dann nicht einfach das wort back ausgegeben? Oder hast du das nur so als Beispiel geschrieben? Wenn ich wieder alles neu zeichnen würde das Programm so langsam werden und alles würde ständig Flackern wenn man Backspace drückt. Ich versuchs einfach mal so, wenn noch jemandem was einfällt, immer her damitmfg Frusciante²
-
hallo
ein beispiel, ja.
kennst du übrigens den unterschied zwischen einem backslash und einem slash?
wenn nicht, mal darüber sinnieren
-
Ups, falschrum geschrieben, Funktioniert leider trotzdem nicht
EDIT: Mit fällt asuch gerdae ein dass das mit einer if anweisung gar nicht funzen kann. Denn ich mach ja z.b. eine Tastatur eingabe mit cin und die If anweisung steht davor (danach wäre ja noch unsinniger). Wenn man dann den ersten Buchstaben eingibt wird die If anweisung einfach übersprungen.
mfg Frusciante²
-
was machst du nur....tststs.. es funktioniert so prima...
na ja, egal
#include<iostream> #include <string> #include<conio.h> using namespace std; int main(){ string s; cout<<"1234"; while (getch()==8) cout<< "\b"; cin>>s; cout<<s; }
bye
-
So funzt das dann aber nicht mehr: (da ich mit der Improved Konsole keinen Zeilumbruch schreiben kann mus ich jedesmal den Cursor neu setzten)
// Instanz vom Konsolen-Interface holen Console& con = Console::getInstance(); con.setColor(colors::FG_GREEN | colors::BG_BLACK); con.setCursor(33,0); cout<<"MATRIX"; con.setCursor(14,6); cout<<"1.Neuen Account anlegen"; con.setCursor(14,8); cout<<"2.Einloggen"; con.setCursor(14,10); cout<<"Eingabe:"; con.setCursor(23,10); while (getch()==8) cout<< "\b"; cin>>choice;
-
Soll ich processed output wieder an machen? Die Leute haben offenbar Probleme damit...hmm. Werd mich mal hinsetzen und mir das ansehen...
MfG SideWinder