while-Schleife wird nur einmal "geöffnet" [gelöst]



  • Hallo zusammen.

    Als erstes möchte ich mich bei allen im c++ Forum für die hilfreichen Beiträge bedanken, hab dadurch schon so manchen Fehler beheben können.

    Nun zu meinem Problem. (Hoffe das ist das richtige Forum)

    Ich möchte eine Passwortabfrage programmieren, in der das Passwort nicht sichtbar eingegeben wird, sondern als sternchen und in der man 3 versuche hat

    Über _getch()und _putch('*') funktioniert es ja, nur leider immer nur beim ersten Versuch.

    Hier der Code:

    while (ianzahl<=3)
    {
    	ceingabe = ' ';
    	ceingabe = _getch();
    
    	//Eingabe und "umwandlung" von char nach string
            while(ceingabe != char(0x0D) && i < 9)
    	{
    		_putch('*');
    		streingabe += ceingabe;
    		ceingabe = _getch();
    	}		
    
    	//passwortueberpruefung
    	if (streingabe == strpassw)
    	{
    		ianzahl = 4;
    		cout<<"erfolg";
    	}
    	else
    	{
    		streingabe= "";
    		ianzahl++;
    		cout<<endl<<"misserfolg";
    	}
    }
    

    Im voraus schon einmal danke.



  • Wie initialisierst du ianzahl ?

    Ist dir klar, dass die Bedingung i < 9 die Schleife nie abbrechen wird, weil i nicht hochgezählt wird? Außerdem wird i vor der Schleife nicht auf 0 gesetzt.



  • ianzahl = 0

    upps, da hab ich was übersehen, danke.

    i ist garnicht deklariert.



  • daran hats gelegen.

    hab einfach

    && i < 9
    

    gelöscht

    vielen Dank nochmals
    und guten Rutsch

    gruß
    Tal Ker


Anmelden zum Antworten