Hilfe, ich bin ein Idiot



  • Moin!

    Dies ist ein Ausschnitt aus einem Listing:

    void pw (void)		// Menüpunkt '3'
    {
    	char ant[] = "nichts";
    	char abfr[25];
    
    	while (1)
    	{
    		if (strncmp(ant,abfr,sizeof(abfr)-1)!=0)
    		{
    			cout<<"Leider falsch...noch mal"<<endl;
    			cin.clear();
    			cin.getline(abfr,sizeof(abfr));
    		}
    		else
    		{
    			break;
    		}
    
    	}
    	cout<<endl<<"Richtig!!!"<<endl;
    }
    

    Dass diese Endlosschleife recht unschön ist, weiß ich, die Abbruchbedingung hatte ich auch schon direkt in der Schleife...ändert nix.

    Das Problem ist nicht, dass das ding nicht läuft, das Problem ist einfach, dass da jedes mal "Leider falsch...noch mal" steht, noch bevor man was eingegeben hat.

    Wieso ist das so?!

    Wie kann mans wegbekommen?

    Ansonsten erfüllt das ding seinen Zweck.

    Dnke im Voraus



  • Hilfe, ich bin ein Idiot

    Da wird dir dieses Forum aber auch nicht helfen können.
    Sowas ist oft angeboren.



  • Ist das eine Scherzfrage?

    Wenn der in die Schleife geht kommt cout und dann cin. Ist doch logisch das Verhalten.
    Mal ordentlich ausschlafen und dann noch mal schauen.



  • verflucht, du hast recht, mehr kaffee....


Anmelden zum Antworten