C++: while(cin >> i) Problem

mGa

Enthusiast
Thread Starter
Mitglied seit
07.01.2004
Beiträge
3.561
Hallo Leute,

ich bin gerade daran einen Vector mit Integers zu füllen. Dies realisiere ich über eine while-Schleife:
Code:
while(cin >> iZahl) {
            vZahlen.push_back(iZahl);
        }

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.


Gruß Marc
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
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 !"; 
  } 
}
 
Zuletzt bearbeitet:
Der Fehler wird doch nicht von dem push_back geworfen, sondern vom cin oder liege ich da falsch?
 
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.
 
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.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh