Sternchen für Passworteingabe

E

ewsd

Hallo,

ich möchte für die Passworteingabe auf der Konsole die Eingabe mit Sternchen unkenntlich machen.
Gibt es dafür vielleicht eine vorgefertigte Funktion?
Kann mit jemand behilflich sein und hat einen Lösungsansatz?

Dankeschön
Schramme
 
Das soll am Ende ein C Programm werden, ohne Benutzeroberfläche. Das hatte ich vergessen zu schreiben.
Sorry.
 
Hi.
Jetzt bin ich es schooon wieder.
Die conio.h scheint windowsspezifisch zu sein. Hab gelesen, dass es dafür einen Linux-Wrapper gibt, das kann ich mir allerdings schenken, da ich einen Vorführrechner bekomme, auf dem das laufen muss.
Hast du noch 'ne Idee?
Danke
 
jokey2 hat gesagt.:
Nimm 'getc(...)' oder 'getchar()'. dann brauchst Du die conio.h nicht.
Das Problem ist, das die Eingabe mit getc bzw. getchar standardmäßig zeilenweise gepuffert wird. D.h. die Sternchen würden erst beim bestätigen mit der Eingabetaste angezeigt.

Man kann die Pufferung natürlich abstellen. Entweder mit der tcsetattr Funktion oder ganz einfach:
C:
system("stty -icanon"); // abstellen.
...
system("stty icanon"); // wieder anschalten

In der Schleife mit getchar mußt du nur prüfen ob die Eingabe zuende ist bzw. ein Fehler aufgetreten ist oder die Eingabetaste gedrückt wurde.

Gruß

/edit: Ach ja, die Ausgabe der Zeichen selbst kannst du mit der Option "echo" kontrollieren:
C:
system("stty -icanon -echo");
 
Zuletzt bearbeitet:
Zurück