Konsoleanwendung stürzt ab.
-
Hallo Leute ich habe mal eine Frage zum einlesen von Werten. Ich möchte Zwei zahlen einlesen und sie dann Vergleichen . Dabei sollen falsche Eingaben wie Buchstaben abgefangen werden. habe es mit
try{
}
catch(){
}aber mein Programm stürtzt trozdem ab. Ich bin doch richtig mit der Annahme das mit try nur versucht wird zu Konvertieren... Hier mal mein Quelltext.
// H2_A2_1.cpp: Hauptprojektdatei. #include "stdafx.h" using namespace System; int main(array<System::String ^> ^args) { //Initialisierung Int32 x=0,y=0; Boolean flagVar=false , flagVar2=false; //Programmcode Console::WriteLine("\t\t\tVergleichsprogramm\n"); Console::Write("Bitte geben Sie die 1.Zahl ein:"); while(flagVar==false){ try { x = Convert::ToInt32(Console::ReadLine()); flagVar=true; } catch (Boolean){ Console::Write("Das war keine Zahle!\n"); Console::Write("Bitte Eingabe wiederholen!"); } } Console::Write("Bitte geben Sie die 2.Zahl ein:"); while(flagVar2==false){ try { y = Convert::ToInt32(Console::ReadLine()); flagVar2=true; } catch (Boolean){ Console::Write("Das war keine Zahle!\n"); Console::Write("Bitte Eingabe wiederholen!"); } } if (x<y) { Console::WriteLine("Die Zahl {0} ist kleiner als die Zahl {1}",x,y); } else Console::WriteLine("Die Zahl {0} ist größer als die Zahl {1}",x,y); Console::Read(); return 0; }
Ok ich habe den Fehler Gefunden.... hatte... catch Boolean zugewiesen mit catch(...) geht es.
// H2_A2_1.cpp: Hauptprojektdatei. #include "stdafx.h" using namespace System; int main(array<System::String ^> ^args) { //Initialisierung Int32 x=0,y=0; Boolean flagVar=false , flagVar2=false; //Programmcode Console::WriteLine("\t\t\tVergleichsprogramm\n"); while(flagVar==false){ Console::Write("Bitte geben Sie die 1.Zahl ein:"); try { x = Convert::ToInt32(Console::ReadLine()); flagVar=true; } catch (...){ Console::Write("Das war keine Zahle!\n"); Console::Write("Bitte Eingabe wiederholen"); } } while(flagVar2==false){ Console::Write("Bitte geben Sie die 2.Zahl ein:"); try { y = Convert::ToInt32(Console::ReadLine()); flagVar2=true; } catch (...){ Console::Write("Das war keine Zahle!\n"); Console::Write("Bitte Eingabe wiederholen!"); } } if (x<y) { Console::WriteLine("Die Zahl {0} ist kleiner als die Zahl {1}",x,y); } else Console::WriteLine("Die Zahl {0} ist größer als die Zahl {1}",x,y); Console::Read(); return 0; }
Danke
Beitrag kann gelöscht werden.
-
Du heißt C++Anfänger_01 und bist seit dem 02.02.2011 registriert. Ich vermute also, dass zu dem jetzigen Zeitpunkt du auch tatsächlich C++ lernen willst. Dazu sei gesagt: Lass um Gottes Willen bloß die Finger von C++/CLI (was eine andere Sprache ist). Denn dein ursprüngliches Problem zeigt auch gleich, dass du nicht verstanden hast, wie genau C++/CLI funktioniert. Tu dir selbst einen gefallen und lerne auch "echtes" C++. Das erspart dir einiges an Frust.