Variable als Zahl deklarieren



  • Hallo zusammen, habe folgendes Problem:
    wie kann ich realisieren, dass wenn ich für a oder b keine Zahl eingebe (Buchstaben oder Zeichen), eine Fehlermeldung ausgegeben und zu einer erneuten Eingabe aufgefordert wird.

    cout <<"Bitte den Wert fuer a eingeben:";     
       cin >> (a);	//Einlesen von a
       cout <<"Bitte den Wert fuer b eingeben:"; 
       cin >> (b);	 //Einlesen von b
    
    c = a*b;
    
       cout <<"c ist:"<<c;
    

    ach ja a,b,c sind als float deklariert

    Gruß Marwin



  • Hallo,
    z.B. so:

    cout <<"Bitte den Wert fuer a eingeben: ";    
    float a, b;
    while ( !(cin >> a) ) {
        cout << "Hallo? Das ist doch keine Zahl!" << endl;
        cin.clear();	
        while(cin.get() != '\n');
    }
    cout <<"Bitte den Wert fuer b eingeben: ";
    while ( !(cin >> b) ) {
        cout << "Hallo? Das ist doch keine Zahl!" << endl;
        cin.clear();
        while(cin.get() != '\n');
    }
    


  • Danke für die schnelle Hilfe.
    🙂
    Marwin



  • HumeSikkins schrieb:

    Hallo,
    z.B. so:

    cout <<"Bitte den Wert fuer a eingeben: ";    
    float a, b;
    while ( !(cin >> a) ) {
        cout << "Hallo? Das ist doch keine Zahl!" << endl;
        cin.clear();	
        while(cin.get() != '\n');
    }
    cout <<"Bitte den Wert fuer b eingeben: ";
    while ( !(cin >> b) ) {
        cout << "Hallo? Das ist doch keine Zahl!" << endl;
        cin.clear();
        while(cin.get() != '\n');
    }
    

    Sieht ja sehr nach Copy-Und-Paste-Code aus.



  • OberLehrer schrieb:

    HumeSikkins schrieb:

    Hallo,
    z.B. so:

    cout <<"Bitte den Wert fuer a eingeben: ";    
    float a, b;
    while ( !(cin >> a) ) {
        cout << "Hallo? Das ist doch keine Zahl!" << endl;
        cin.clear();	
        while(cin.get() != '\n');
    }
    cout <<"Bitte den Wert fuer b eingeben: ";
    while ( !(cin >> b) ) {
        cout << "Hallo? Das ist doch keine Zahl!" << endl;
        cin.clear();
        while(cin.get() != '\n');
    }
    

    Sieht ja sehr nach Copy-Und-Paste-Code aus.

    eben

    void leseFloat( float& b, const char* bez )
    {
      cout <<"Bitte den Wert fuer " << bez << " eingeben: ";
      while ( !(cin >> b) ) {
        cout << "Hallo? Das ist doch keine Zahl!" << endl;
        cin.clear();
        while(cin.get() != '\n');
      }
    }
    
    float a;
    leseFloat( a, "a" );
    


  • OberProfessor schrieb:

    OberLehrer schrieb:

    HumeSikkins schrieb:

    Hallo,
    z.B. so:

    cout <<"Bitte den Wert fuer a eingeben: ";    
    float a, b;
    while ( !(cin >> a) ) {
        cout << "Hallo? Das ist doch keine Zahl!" << endl;
        cin.clear();	
        while(cin.get() != '\n');
    }
    cout <<"Bitte den Wert fuer b eingeben: ";
    while ( !(cin >> b) ) {
        cout << "Hallo? Das ist doch keine Zahl!" << endl;
        cin.clear();
        while(cin.get() != '\n');
    }
    

    Sieht ja sehr nach Copy-Und-Paste-Code aus.

    So:

    void leseFloat( float& b, const char* bez )
    {
      cout <<"Bitte den Wert fuer " << bez << " eingeben: ";
      while ( !(cin >> b) ) {
        cout << "Hallo? Das ist doch keine Zahl!" << endl;
        cin.clear();
        while(cin.get() != '\n');
      }
    }
    
    float a,b,c,d;
    leseFloat( a, "a" );
    leseFloat( b, "b" );
    leseFloat( c, "c" );
    leseFloat( d, "d" );
    

Anmelden zum Antworten