Error Nachricht Gespamt (While Schleifen) (Datentyp abfragen)



  • EDIT
    Mein Fehler wird nur bei "Falschen" Eingaben wie ('e' '-', bzw. Anderen Buchstaben/ Texten, mein Programm hat aber keine Probleme mit integer's bzw. Zahlen. Dies bezüglich benötige ich in diesem Falle eine Datentyp abfrage (Bzw. vermute ich dies). Danke für die Antwort im Voraus (Übrigenz danke an Bitmapper für den Tipp, das bei Interger'n kein Einwand in meinem Code auftrifft)

    Hallo, meine Methode wird öfter Aufgerufen und fungiert als Integer (Desw. hat es einen Rückgabewert als Integer) der einem Bestimmten Schema entsprechen muss (Siehe bedingen meiner Schleife), es funktioniert gut allerdings wird die errornachricht gespamt und es gibt keine möglichkeit erneut eine Eingabe zu schreiben! Error Messages im Syntax oder andere, werden nicht angezeigt / werden nicht gefundne , deswegen gehe ich von einem Logikfehler aus den ich nicht beheben kann.
    Deswegen schreibe ich diesen Artikel.

    Nunja, also die Funktion soll sein: ich werde aufgerufen X einzugeben -> ich gebe X ein -> (es muss die Zahl 0 , 2 oder 1 sein) -> die Abfrage erfolgt allerdings, wie bereits gesagt, erfolg keine Möglichkeit erneut eine Eingabe zu tätigen , sondern es wird meine Error Nachricht DURCHGEHEND gespamt.

    int cm::checkX() {
    	cout << "Write down  X Cord (0,1,2)" << endl;
    	int input;
    	cin >> input;
    	while(!(input >= 0 && input <= 2)) {
    		cout << "Wrong Input! Please write down the X Cord again! (0,1,2)" << endl;
    		cin >> input;
    	}
    	return input;
    
    }
    

    Danke schonmal für die Antworten! Leider bin ich, wie ihr vielleicht merkt, noch Anfänger in C++ und dies ist ein Bestandteil meines TicTacToe Programm's!

    MfG Malte
    (Sorry auch für verwirrende Grammatik oder Rechtschreibung 🙄 )



  • Bei mir funktioniert es, dein Fehler muss woanders liegen.



  • Bei mir gibt die Funktion 0 zurück ohne Fehlermeldung wenn ich z.B e eintippe.
    Das kannst du einfach umgehen, indem du aus input und dem Rückgabewert der Funktion ein char machst und auf '1' '2' und '0' testest.



  • initialisiere mal input mit z.b. -1
    AFAIK wenn beim einlesen der text nicht in einen int konvertiert werden kann, so wird die angegebene variable beim >> operator nicht verändert.


Anmelden zum Antworten