Frage zu "Passwort-Programm"
-
Hallo, da mir heute Nachmittag bei meinem bubblesort Problem hier schon geholfen werden konnte, hoffe ich, dass ihr mir auch hierbei weiterhelfen könnt.
Folgendes Prog. soll ein Passwort überprüfen(Man hat 3 Versuche). Soweit kein Problem. Es funktioniert eig. auch einwandfrei. Nur wenn ich mehr als 5 Zeichen eingebe, wird die Anzahl der Versuche nicht mehr richtig heruntergezählt. Bei 6 Zeichen kommt z.b. bei Anzahl der Versuche -1 raus. Wenn ich 20 Stellen eingebe dann: Sie haben noch 1658745125 Versuche.
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char eingabe[6]; char pw[6]={"Hallo"}; //Das vorgegebene Passwort int versuche = 3; do { printf("Passwort eingeben: "); gets(eingabe); if(strcmp(eingabe,pw)==0) { printf("Passwort korrekt!\n"); break; } else { printf("Falsches Passwort!\n\n"); } printf("Noch %d Versuche uebrig\n\n", --versuche); } while(versuche>0); }
Schönen Abend noch
-
EDIT
hab den Fehler selbst gefunden.
ich hab den code folgendermaßen abgeändert und jetzt läufts
char eingabe[100]; char pw[]={"Hallo"}; //Das vorgegebene Passwort int versuche = 3;
-
Dein Array für die Eingabe ist zu klein.
Und du benutztgets
-
ludolf.peter1 schrieb:
ich hab den code folgendermaßen abgeändert und jetzt läufts
char eingabe[100];
Dann gib halt mehr als 100 Zeichen ein. Dann passiert das wieder.
-
Noch viel besser: Wenn man noch mehr Zeichen eingibt, kann man sogar das Passwort ändern!