brauche Hilfe: Anfängeraufgabe Passwort Zugangsprogramm (PIN verfahren)
-
Hallo, schöne Weihnachten!!
Brauche dringend Hilfe:
Aufgabe: Passwortabfrage siehe unten (hoffe das stimmt so).
Aufgabe muss erweitert werden das man Passwort ändern kann.
Bedingung: Passwort muss genau 5 ziffern haben und keine führende null.#include <iostream.h>
//#include <vcl.h>void main (void)
{
const iPASSWORT=12345;
int iAltesp, iNeuesp1,iNeuesp2;cout << "Bitte geben Sie ihr altes Passwort ein" << endl;
cin >> iAltesp;if (iPASSWORT == iAltesp)
{
cout << "Bitte geben Sie ihr neues Passwort ein (mindestens 5 Ziffer)" << endl;
cin >> iNeuesp1;
}
if (iNeuesp1 > 10000)
{
cout << "Bitte geben Sie ihr neues Passwort noch einmal ein" << endl;
cin >> iNeuesp2;
}
if (iNeuesp1==iNeuesp2)
{
cout << "Ihr Passwort wurde geändert" << endl;
}
else
{
cout << "Sie haben einen Fehler bei der Eingabe gemacht" << endl;
}cin.get();
cin.get();
-
#include <iostream.h> //kein C++ ->#include<iostream> //#include <vcl.h> void main (void)//kein C++-> int main() { const iPASSWORT=12345; int iAltesp, iNeuesp1,iNeuesp2; cout << "Bitte geben Sie ihr altes Passwort ein" << endl; cin >> iAltesp; if (iPASSWORT == iAltesp) { cout << "Bitte geben Sie ihr neues Passwort ein (mindestens 5 Ziffer)" << endl; cin >> iNeuesp1; } if (iNeuesp1 > 10000) { cout << "Bitte geben Sie ihr neues Passwort noch einmal ein" << endl; cin >> iNeuesp2; } if (iNeuesp1==iNeuesp2) { cout << "Ihr Passwort wurde geändert" << endl; } else { cout << "Sie haben einen Fehler bei der Eingabe gemacht" << endl; } cin.get(); cin.get();Uhihi...danke für diese Super Aufgabe zum frühen Morgen

Nur ohne Frage wird dir keiner Helfen können.
-
Sorry ist vielleicht unklar.
ich ahbe die aufgabe so weit gelösst und muss nun die aufgabe erweitern, so das das passwort genau fünf ziffern hat und keine führende null.
das heist: Pinänderung mit neuem Passwort durch eingabe des alten Passwort. das neue darf nur fünf Ziffern haben.
Danke im vorraus
-
Dann würde ich dir empfehlen, ließ das neue Passwort mit einem einem String ein, und schneide alles nach der 5. Stelle ab, und danach castest du es nach einen Int. Musst natürlich gucken ob noch führende Nullen vorhanden sind, aber das solltest du ja wissen.
-
Falls du davon ausgehen kannst, dass der user nur Ziffern eingeben wird, dann solltest du einfach testen können ob die eingegebene Zahl >=10000 und <100000 ist. Die Zahl sollte dann alle Bedingungen erfüllen. Am einfachsten geht das denk ich mit einer do-Schleife.
do{ std::cin>>iNeuesp1; }while(iNeuesp1<10000¦¦iNeuesp1>99999);
-
vielen dank für die antworten.
Wie mache ich das mit der null die nicht am anfang stehen darf.
Ich denke die aufgabe ist so zu lösen das wenn am anfang eine null steht und die zahl > oder <5 ist am ende eine fehlermeldung kommen muss.
-
bei >=10000 und <100000 steht eh keine 0 vorne. Wenn du in ein Int einliest sollten führende Nullen abgeschnitten werden. Falls der Benutzer als Passwort also 00034567 oder 34567 eingibt ergibt das intern beide male das gleiche.
Sollst du solche Fälle abfangen dann muss du tatsächlich in einen String einlesen und dann erst die Länge sowie das erste Zeichen überprüfen.
-
Ok soweit habe ich das verstanden. Aber ich bin mir noch nicht klar wie ich die erste Zahl, auf eine null überprüfen kann.
-
Shinja schrieb:
bei >=10000 und <100000 steht eh keine 0 vorne. Wenn du in ein Int einliest sollten führende Nullen abgeschnitten werden. Falls der Benutzer als Passwort also 00034567 oder 34567 eingibt ergibt das intern beide male das gleiche.
Sollst du solche Fälle abfangen dann muss du tatsächlich in einen String einlesen und dann erst die Länge sowie das erste Zeichen überprüfen.
Wurde dir doch schon beantwortet deine Frage
