Ein Passwort von std :: cin lesen
Ich Lesen müssen, ein Kennwort aus der Standardeingabe und wollte std::cin
kein echo der eingegebenen Zeichen durch den Benutzer...
Wie kann ich das deaktivieren das echo von std::cin?
hier ist der code, den ich derzeit benutze:
string passwd;
cout << "Enter the password: ";
getline( cin, passwd );
Ich bin auf der Suche nach einem OS-agnostisch Weg, dies zu tun.
Hier es gibt Möglichkeiten, dies zu tun in Windows und *nix.
InformationsquelleAutor der Frage |
Du musst angemeldet sein, um einen Kommentar abzugeben.
@wrang-wrang Antwort war wirklich gut, aber nicht erfüllt meine Bedürfnisse, das ist mein letzter code (basierend auf diese) Aussehen:
Beispiel für die Nutzung:
InformationsquelleAutor der Antwort
Es gibt nichts in der Norm.
In unix, können Sie schreiben einige magic bytes, je nach Typ des Terminals.
Verwenden getpasswdwenn es verfügbar ist.
Können Sie system()
/usr/bin/stty -echo
zu deaktivieren echo, und/usr/bin/stty echo
um es zu aktivieren (auch unter unix).Dieser Kerl erklärt , wie es zu tun, ohne mit "stty"; ich habe nicht versucht, es selbst.
InformationsquelleAutor der Antwort Jonathan Graehl
Wenn Sie kümmern sich nicht um Portabilität, können Sie
_getch()
imVC
.Gibt es auch
getwch()
fürwide characters
. Mein Rat ist, dass SieNCurse
die verfügbar ist in*nix
Systeme auch.InformationsquelleAutor der Antwort AraK
Einzige Idee, was ich habe, man konnte Lesen, Passwort char by char, und danach drucken Sie einfach die Rücktaste ("\b"), und vielleicht ist '*'.
InformationsquelleAutor der Antwort IProblemFactory