Eingabefehler abfangen!

Gambit050

Grünschnabel
Hi bräucht mal ne Hilfe für folgendes Problem.

Angenommen ich möchte das eine Zahl eingegeben wird:

int eingabe;
cout << "Eingabe:";
cin eingabe;


Wie kann ich es jetzt mit einer Fehlermeldung abfangen falls ein Buchstabe eingegeben wird?
Also z. B. ein h. Dann soll ausgegeben werden: "Eine Zahl du Depp" und wieder zur Eingabe gesprungen werden.

Ich hoffe ich konnte mein Problem verständlich erklären.
Gruß
Sascha
 
Grundsätzliches Vorgehen:

Geh davon aus, dass ein Text eingegeben wird
Prüfe, ob der Text nur Ziffern und ggf. Dezimaltrenner etc. enthält
Wenn nicht, melde den Fehler und wiederhole die Eingabe
SONST alles klar

Alles klar?
vop
 
bein einstelligen zahlen:


if (eingabe < 0x30 || eingabe >0x39)
printf("FEHLER");
else
printf("KORREKT");

versuch das mal

die dezimale null hat einen hexwert von 0x30 bzw. die neun einen hexwert von 0x39. ist die eingabe grösser oder kleiner ist das ergebnis korrekt
 
Und den ganzen String zu pruefen ist auch nicht sehr viel schwerer:
Code:
int is_numstr(char *s)
{
    /* Edit: Falls ein leerer String uebergeben wurde */
    if (*s == 0)
        return 0;

    /*while (*s >= '0' && *s <= '9')*/
    while (isdigit(*s)) /* Edit: isdigit ist schon 'was Schoenes... */
        s++;

    return *s == 0;
}
 
Danke schonmal
Ist zwar alles noch ein wenig hoch für mich, aber ich werd mich damit mal ein bißchen beschäftigen. try and error!
Gruß Sascha
 
Zurück