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 benutzt gets



  • 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.


  • Mod

    Noch viel besser: Wenn man noch mehr Zeichen eingibt, kann man sogar das Passwort ändern!


Anmelden zum Antworten