000
20.02.2008, 14:35 Uhr
~schaich
Gast
|
Hey Leute,
ich hab ein kleines Programm geschrieben, das, wenn es ausgeführt wird, eine eingabe fordert, die ich als passwort bezeichne. Im zweiten Durchgang überprüft das Programm,ob es schon ein Passwort gibt und sollte die Eingabe des vorher eingegebenen verlangen. Leider erkennt mein Programm nicht, dass ich beim ersten Durchlauf schon etwas eingegeben habe und ich muss immerwieder ein "neues" passwort eingeben... kann mir einer helfen??
Danke schonmal
MfG schaich
Quelltext:
Code: |
#include <iostream> #include <string> using namespace std; class Password{ private: string currentPw; static int counter; public: void setPw(string); string getPw(); };
int Password::counter = 0; void run(); int main() { run(); return 0; std::cin.get(); }
void run(){ Password password; string newPw; cout<<"altes Passwort: "<<password.getPw()<<endl; cout<<"Bitte das neue Passwort eingeben\n"; cin>>newPw; password.setPw(newPw); std::cin.get(); }
void Password::setPw(string newPw){ cout<<"Neuer Aufruf"<<endl; if(currentPw.empty()){ currentPw = newPw; run(); std::cin.get(); }else{ string eingabe; cout<<"Bitte das alte Passwort eingeben"<<endl; cin>>eingabe; std::cin.get(); if(eingabe == currentPw){ currentPw = newPw; cout<<"Passwort geändert"; std::cin.get(); }else if(counter<3){ counter++; cout<<"Falsches Passwort \nSie haben noch "<<3-counter<<" Versuche"<<endl; run(); std::cin.get(); }else{ cout<<"Programm gesperrt\n"; std::cin.get(); } } }
string Password::getPw(){ return currentPw; }
|
|