Bei Texteingabe nur **** anzeigen ! Wie ?



  • In der Konsole möchte ich ein Passwort eingeben . Jedoch sollen statt dem Passwort dort nur *´chen stehen . Wie mache ich das ?



  • Einzeln die Zeichen des Passwortes mit getch() einlesen - keine Ausgabe. Diese Zeichen hängst du dann intern an einen String an. Ausgeben tust du für jede Eingabe ein '*'.

    Allerdings musst du dich um so grundlegende Dinge wie das Abfangen der Enter-Taste (ascii #13) und das Abfangen und Verarbeiten der Taste Backspace (ascii #8) selbst kümmern.

    MfG SideWinder



  • Kann man das nicht ganz normal mit cin machen und währenddessen ein wenig am Ausgabestream rumfummeln? 😉



  • kann man nicht, die haben 2 getrennte buffer



  • Hallo. Ich stehe auch gerade vor dem Problem, aber getch() beendet nun mal das Programm. Also wie soll das bitteschön gehen. ich brauche echt Hilfe. Danke



  • getch() beendet kein Programm.

    MfG SideWinder



  • Ich habe mal ein Programm geschrieben in Turbo Pascal das alle einlesbaren Zeichen in ein * verwandelt und andere Tasten ignoriert bzw. die Eingabe beendet. Das war allerdings noch in meiner absoluten Anfänger Zeit und ich habe es nie optimiert. Wenn du TP in C++ umschreiben kannst, schicke ich es dir gerne zu, wenn du es haben willst.
    Ich meine man kann mit einem externen Assembleraufruf Interrupts benutzen. Du könntest die Eingaben extern mit Assembler erledigen, das hätte den Vorteil, das du da mit dem Interrupt 8h(?) Eingaben ohne Echo machen kannst. Es erscheint also nichts auf dem Bildschirm und du kannst dann immer ein * ausgeben lassen. Setzt natürlich raus das du Assembler kannst.
    Ich glaube in C++ war es so einzubinden:

    extern "C"
    

    Dahinter dann den Aufruf des Assemblerprogramms.

    Code-Hacker


Anmelden zum Antworten