000
11.09.2002, 09:33 Uhr
FDellas
|
Hallo.
Ich will eine kleine Passwortabfrage programmieren. Dabei soll die Eingabe als Sternchen angezeigt werden. Funktioniert auch so wei ganz gut. Nur die einzelnen ASCII-Codes werden nicht auf mein char-Array übertragen. Jedes Zeichen erhält den Code 1. Ich weiß nicht mehr weiter. Dieses Programm ist teilweise noch mit altem C-Standart geschrieben -- ich bitte um vergebung --.
Hier der Code:
C++: |
#include <iostream> #include <stdlib.h> #include <string.h> #include <conio.h> #include <time.h>
using namespace std;
const char UserPasswd[3][50] = {"fdellas8580","230279","knuffel"}; const char User[3][50] = {"FDellas","GVollberg","AWerner"};
bool checkPassword(const char *pw) { srand ((unsigned) time(NULL)); unsigned char ch; char passwd[21]; int i = 0; cin.clear(); cin.sync(); while (ch = getch() != '\r' && i < 20) { passwd[i++] = ch; for (i=0; i<rand()%5+1; i++) cout << "*"; } passwd[i] = '\0'; cout << "\n\n" << pw << endl; cout << "\n\n" << passwd << endl; for (i=0; i<strlen(passwd); i++) cout << static_cast <int> (passwd[i]) << " "; if (!strcmp(passwd, pw)) return true; else return false; };
int main() { char Username[50]; cout << "Dieser Bereich erfordert Authentifizierung. Bitte Username und Passwort eingeben:" << endl; cout << "Username:\t"; cin >> Username; for (int i=0; i<3; i++) if (!strcmp(Username, User[i])) break; if (i==3) { cout << "\n\nUnbekannter Username!!. Programm wird beendet." << endl; exit (1); } cout << "Passwort:\t"; if (checkPassword(UserPasswd[i])) { cout << "\n\nAuthentifizierung erfolgreich. Zugang gewährt " << User << endl; exit (0); } else { cout << "\n\nFalsches Passwort. Programm wird beendet." << endl; exit (1); } return 0; };
|
|