Hallo,
ich habe eine Art Ticketautomaten mit der Console geschrieben, und jetzt have ich jedoch ein paar kleine Problemchen...
Ich habe am Anfang zwei "Eingabefelder", welche Ticketart (also 3-Stunden-Karte, Tageskarte, Wochenendkarte und Jahreskarte) sowie die Anzahl der gekauften Karten abfragt.
Die einzelnen Kartentypen haben jeweils eine Nummer (1-4 eben), also ein int Variable. Man gibt nun zuerst eine Nummer von 1-4 ein, wenn es irgendeine andere (gerade!) Zahl ist, wird es abgefangen, eine Fehlermeldung kommt, und es wird der Kartentyp erneut abgefragt.
Jedoch wenn ich einen Buchstaben, einen String oder eine Kommazahl eingebe bei der Kartenart oder der Anzahl der Karten, kommt eine Endlosschleife...
Wie kann ich bei der Abfrage schon eine Absicherung einbauen, dass bei einem char, string oder float Eingabe eine Fehlermeldung kommt, und das Programm sauber beendet wird.
Ich dachte an soetwas in der Art, das funktioniert aber nicht (nicht lachen
)
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
cout<<"Welche Ticketart (1-4) moechten Sie kaufen? : ";
cin>>Auswahl;
//Hier kommt jetzt das, wie ich es mir vorstelle so ungefähr
if (Auswahl == char) || (Auswahl == float)
{
cout<<"Fehler! Das Programm wird jetzt beendet" <<endl;
return (0);
}
cout<<"Wie viele Tickets moechten Sie kaufen? : ";
cin>>Anzahl;
if (Anzahl <= 0)
{
Anzahl = 1;
}
|