cin in schleife



  • Hallo,

    int main()
    {
    	int i = 0;
    
    	do
    	{
                    cout << "Eingabe?";
                    cin >> i;
    	}
    	while (i != 0);
    
    	return 0;
    }
    

    Frage: Warum wird cin ignoriert, wenn man schon ein int eigegeben hat und danach einen/mehrere buchstabe(n) eintippt, da entsteht eine endlosschleife, warum und wie kann ich das verhindern?



  • cin wird nicht ignoriert. cin blockiert solange, bis du etwas eingegebn hast. Deine Schleife soll so lange laufen, wie i ungleich 0 ist. Wenn du also nicht das Zeichen für den Wert 0 eingibts, muss deine Schleife endlos laufen.



  • dust schrieb:

    cout << "Eingabe?";
    cin >> i;

    ein string als shift-counter geht schon mal nicht. ausserdem fehlen da noch zuweisungen, sonst passiert rein gar nichts. wo sind die variablen überhaupt definiert?
    🙂



  • Dein endloses Durchlaufen (er wiederholt dann "Eingabe" ständig, richtig?) kannst du verhindern, indem du den Eingabepuffer leerst (=>SuFu).


Anmelden zum Antworten