Bedingung/zulassen von nur einer ziffer



  • Hi und zwar ich hab mal ne Frage: 😕
    ich bin neu in c++. und würde gerne ein cin abfangen wenn es mehere stellen hat, das nur eine ziffer zulässig ist (also mit einem if oder der gleichen). Es ist aber nicht möglich mit meinem programmzusammenhang die bedingung (x>10) zu nutzen
    gibt es eine derartige bedingung?
    und wenn es noch möglich ist, wie ich über ein if auch NUR eine Zahleneingabe zulassen kann.

    vielen dank schon mal



  • Simon6969 schrieb:

    Es ist aber nicht möglich mit meinem programmzusammenhang die bedingung (x>10) zu nutzen

    Das verstehe ich nicht, wieso soll das nicht möglich sein?



  • Simon6969 schrieb:

    Hi und zwar ich hab mal ne Frage: 😕
    ich bin neu in c++. und würde gerne ein cin abfangen wenn es mehere stellen hat, das nur eine ziffer zulässig ist (also mit einem if oder der gleichen). Es ist aber nicht möglich mit meinem programmzusammenhang die bedingung (x>10) zu nutzen
    gibt es eine derartige bedingung?
    und wenn es noch möglich ist, wie ich über ein if auch NUR eine Zahleneingabe zulassen kann.

    vielen dank schon mal

    Wie wärs mit if(x>9) ?
    x>10 hilft dir in dem Zusammenhang nämlich genau gar nicht



  • if(x>10) liefert auch noch bei dem Wert 10 true.

    Möglicherweise ist dir hiermit geholfen:

    #include <iostream>
    using namespace std;
    
    void main()
    {
    	int x = 0;
    
    	cout << "Einstellige Zahl?\t";
    
    	do {
    		if(x>9) cout << "Einstellig, bitte!\t";
    		cin >> x;
    	}
    	while(x>9); // Schleife läuft so lange, wie x größer als 9 ist.
    
    	cout << endl << "Vielen Dank!" << endl << endl;
    }
    


  • root2k schrieb:

    Möglicherweise ist dir hiermit geholfen:

    void main()
    

    Nein! void main() war noch nie C++! main() hat immer den Rückgabetypen int .

    root2k schrieb:

    do {
    		if(x>9) cout << "Einstellig, bitte!\t";
    		cin >> x;
    	}
    	while(x>9); // Schleife läuft so lange, wie x größer als 9 ist.
    

    Wieso prüfst du zwei Mal auf die Bedingung? Das ginge vielleicht ein bisschen einfacher mit einer Quasi-Endlosschleife und break .



  • außerdem sollte die erste Eingabe erstmal abgewartet werden bis man mit "einstellig bitte" nervt



  • Paul Manns schrieb:

    außerdem sollte die erste Eingabe erstmal abgewartet werden bis man mit "einstellig bitte" nervt

    x ist ja am Anfang 0 , daher sollte das kein Problem darstellen... 😉



  • Sorry, ein wenig unüberlegt drauf los geschrieben.
    @ Paul Manns: x ist doch am Anfang 0 🙂

    So besser?

    #include <iostream>
    using namespace std;
    
    int main()
    {
        int x = 10;
    
        while(x>9) {
            cout << "Einstellige Zahl?\t";
            cin >> x;
        }
    
        cout << endl << "Vielen Dank!" << endl << endl;
    }
    


  • root2k schrieb:

    So besser?

    void main()
    

    Nein!!!

    root2k schrieb:

    while(x>9) {
            cout << "Einstellige Zahl?\t";
            cin >> x;
        }
    

    Ja, das ist eine Möglichkeit. Spielt schlussendlich auch keine so grosse Rolle. Man muss einfach aufpassen, dass man keine negative Zahl oder etwas anderes (z.B. Buchstaben) eingibt, aber das ist wieder ein anderes Thema.



  • Das void hatte ich wegeditiert, aber da warst du leider schon am schreiben 😉



  • Nexus schrieb:

    Paul Manns schrieb:

    außerdem sollte die erste Eingabe erstmal abgewartet werden bis man mit "einstellig bitte" nervt

    x ist ja am Anfang 0 , daher sollte das kein Problem darstellen... 😉

    jo sry, hab ich übersehen^^


Log in to reply