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.


Anmelden zum Antworten