Eingaben durch '*' schützen
-
Hallo Leute..
Habe mir den Beitrag von SideWinder mit dem Thema "Passwörtern (Eingaben durch '*' ersetzen)" angeschaut.Hier ist der Code:
#include <iostream> #include <string> #include <conio.h> std::string readPassword (char replace = '*') { std::string password; char now = '\0'; while(now != '\r') { now = getch(); // Sonderzeichen ignorieren // Bestehen aus 2 Zeichen - also nochmals getch() aufrufen // Siehe FAQ-Beitrag "Einlesen von Pfeiltasten, F-Tasten und Tastenkombinationen" if(now == 0 || now == 0xE0) { getch(); continue; } // Steuerzeichen ignorieren (Haben ASCII-Codes kleiner als 32) if(now < 32) continue; // Zeichen anhängen und Ersatzzeichen ausgeben password += now; std::cout << replace; } return password; }
Aber ich kann ihn nicht anwenden.
Das ist jetzt eine Funktion soweit ich weiss. Und muss bei MAIN irgendwie einsetzen oder?
Aber wie?Kann mir jemand Tipps geben bitte..
Danke im Voraus
MfG
Technology
-
Ja, das ist die funktion
std::string readPassword(char replace = '*');
Funktionsdefinitionen (wie obige) entsprechen immer dem Muster
[Typ des Rückgabewertes] NameDerFunktion( [Parameterliste] );
wobei [Parameterliste] aus
[Typ] [Parametername] [ = Default-Wert], ...
demzufolge ist
std::string readPassword(char replace = '*');
die Funktion namens readPassword welche
als Ergebnis einen string liefert und
als einzigen Parameter einen char verlangt.Beispielanwendung:
#include <iostream> #include <string> #include <conio.h> namespace std; std::string readPassword(char replace = '*') { std::string password; char now = '\0'; while(now != '\r') { now = getch(); if(now == 0 || now == 0xE0) { getch(); continue; } if(now < 32) continue; password += now; std::cout << replace; } return password; } int main() { string username; string password; cout << "Please Login:" << endl; cout << "Username: "; cin >> username; cout << "Password: "; password = readPassword( '*' ); // '*' als Parameter eigentlich unnötig, da dies // angewendet würde, wenn kein Parameter übergeben // würde: readPassword(); cout << "You're trying to logon as " << username << " with password \"" << password "\"!" << endl; // Diese Zeile dient hier nur der Demonstration und sollte auf keinen fall // bei ernsthaften Anwendungen verwendet wird, da dadurch der "Sichtschutz" // von Sidewinder keinen Sinn haben würde. return 0; }
HIH
Greetz, Swordfish
-
Danke.
Hat funktioniert.
MfG
Technology
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.