[C++] Exceptions bei Eingabe von char, wenn int erwartet wird!

Vielleicht kennt ihr das Problem, das auftritt, wenn ihr irgendwo ein

int bla;
cin>>bla;

stehen habt.
Wenn gültige Zeichen, also Zahlen eingegeben werden, funktioniert alles bestens. Wenn aber ein Buchstabe oder ein anderes nicht numerisches Zeichen eingegeben wird, stürzt das Programm ab und ihr seid vielleicht ratlos: Was kann ich dagegen tun?

Hier ist die Lösung!
Die Funktionen

char char_eingabe()
{
 while(1)                //Endlosschleife
 {
   if(kbhit())          //wenn eine Taste gedrückt wurde
   {
   return getch();      //Endlosschleife abbrechen
   }
 Sleep(10);   //CPU entlasten, indem 10ms gewartet wird.
 }
}

int int_eingabe()
{
 char speicher = ' ';      //zwischenspeicher ist char, weil char alles enthalten darf
 while(!isdigit(speicher)) // solange die Eingabe keine Zahl war, wird die Schleife ausgeführt
 {
  speicher = char_eingabe();  //aufruf des programms, das char vom benutzer verlangt
 }

return (int)speicher-'0';
}

Die Anwendung

int bla;
cout< <"Eingabe: ";
bla = int_eingabe();

Die Funktionsweise ist ganz einfach!
Zunächst wird mit char_eingabe eine Eingabe entgegengenommen und dann wird geprüft, ob es eine Zahl war. Das geht, weil isdigit Zahlen auch in chars erkennt.
Wenn es eine Zahl war, wird ‘0′ abgezogen und man erhält die eingegebene Zahl!

Das kommt übrigens bei meinem 4-Gewinnt-Spiel zum Einsatz!

Keine verwandten Beiträge gefunden.

1 Star2 Stars3 Stars4 Stars5 Stars (Wurde noch nicht bewertet)
Loading ... Loading ...

Dieser Artikel wurde von Simon verfasst.
Gelesen: 981x heute: 2x

Dieser Artikel wurde am Samstag, Juni 21st, 2008 um 09:00 in den Kategorien C/C++ geschrieben. Du kannst die Kommentare über den Feed (RSS 2.0) beobachten. Du kannst eine Antwort hinterlassen, oder einen Trackback von deiner Seite setzen.


3 Kommentare zu “[C++] Exceptions bei Eingabe von char, wenn int erwartet wird!”

  1. Danke, sehr nützlich. Vor allem für Anfänger wie mich…

  2. :) Ich bin ja selbst noch ein blutiger Noob

  3. [...] [C++] Exceptions bei Eingabe von char, wenn int erwartet wird! (265) [...]

Hinterlasse einen Kommentar!

CommentLuv Enabled

Nein, mich gibt es nicht bei Twitter!

»Archiv

Easy-Profit.info
Angebote und Einkaufen klimaneutral -  bei kaufDA.de Browser-Statistiken
Dieser Blog ist gehostet bei ALL-INKL.COM - Webhosting Server Hosting Domain Provider