Hallo Leute,
ich bin gerade daran einen Vector mit Integers zu füllen. Dies realisiere ich über eine while-Schleife:Das Problem ist nun, wenn ich eine falsche Eingabe mache, also z.B. "a" was ja keine ganze Zahl ist, beendet er mir das gesamte Programm. Wie kann ich das Abfangen? Vielen Dank schonmal.Code:while(cin >> iZahl) { vZahlen.push_back(iZahl); }
Gruß Marc
+ Antworten
Ergebnis 1 bis 5 von 5
Thema: C++: while(cin >> i) Problem
- 12.11.11, 17:51 #1Kapitän zur See
- Registriert seit
- 07.01.2004
- Beiträge
- 3.235
C++: while(cin >> i) Problem
Intel i5 2500K; 4400MHz ; 1,288V ; wassergekühlt #
ASRock Z68 Extreme3 Gen3; Z68 ; 100MHz #
4GB G.Skill ECO Series; 800 MHz ; 7-8-7-24 1T ; 1,379V #
Sparkle 8800GTS 512MB; 770 MHz ; 1945 MHz ; 2230 MHz ; wassergekühlt #
- 12.11.11, 18:10 #2
Das Zauberwort heißt Exception. Einfach per try-catch abfangen.
Google
Code:while(cin >> iZahl) { try { vZahlen.push_back(iZahl); } catch(...) { cout << " Es ist ein fehler aufgetreten !"; } }Geändert von pointX (12.11.11 um 18:14 Uhr)
2500K, Z68-V, Team 8GB 1333, 1TB Samsung F3, Ninja 3, CM-500W

<codec> root kann mein heim zerstören, mich aus dem system aussperen. Aber nur Gott allein entscheidet, ob ich nach /dev/null/ oder nach /var/log/ komme
- 12.11.11, 18:40 #3Kapitän zur See
- Registriert seit
- 07.01.2004
- Beiträge
- 3.235
Themenstarter
Der Fehler wird doch nicht von dem push_back geworfen, sondern vom cin oder liege ich da falsch?
Intel i5 2500K; 4400MHz ; 1,288V ; wassergekühlt #
ASRock Z68 Extreme3 Gen3; Z68 ; 100MHz #
4GB G.Skill ECO Series; 800 MHz ; 7-8-7-24 1T ; 1,379V #
Sparkle 8800GTS 512MB; 770 MHz ; 1945 MHz ; 2230 MHz ; wassergekühlt #
- 12.11.11, 18:52 #4
Kann gut sein, mit c++ kenne ich mich nicht so aus.
Dann evt. iZahlText (String) als eingabe verwenden, und innerhalb der while-Schleife dann prüfen, ob iZahlText auch wirklich eine Zahl ist.2500K, Z68-V, Team 8GB 1333, 1TB Samsung F3, Ninja 3, CM-500W

<codec> root kann mein heim zerstören, mich aus dem system aussperen. Aber nur Gott allein entscheidet, ob ich nach /dev/null/ oder nach /var/log/ komme
- 15.11.11, 14:49 #5
Es ist egal, wer die Exception wirft, bzw. wo sie geworfen wird, so lange du sie an der für dich richtigen Stelle fängst.

LinkBack URL
About LinkBacks
Zitieren