Exceptions Frage



  • Hallo,

    ich habe folgendes Problem: Ich möchte im Dos den User auffordern eine 1 für Weiter und eine 0 für Abbrechen eingibt. Das klappt auch bis jetzt, wenn man nur 0 und 1 eingibt. Und ich möchte es mit try-catch Anweisungen es abfangen.
    Ich habe bis jetzt nicht mit Exeptions gearbeitet. Kann mir jemand hier weiterhelfen?
    Danke
    Hier mein Code:

    while(eintrag)
        { 
    	   E_WahlenDienst waehler; 
    		//Ortsabfrage:
            cout << "Ort: "; 
            cin >> tempOrt;
    		waehler.setOrt(tempOrt);
    
    		//Parteiabfrage:
            cout << "Partei: "; 
            cin >> tempPartei;
            waehler.setPartei(tempPartei);
    
            // Aktuelle Eingabe in die Datei schreiben:
    		File << waehler.getOrt() << "," << waehler.getPartei() << endl; 
    
    		//Abfrage, ob man noch mal waehlen will:
    		cout << "[1]Weiter ; [0]Abbrechen:";
    		cin >> eintrag;
        }
    




  • so:

    if( eintrag == 0 )
      throw "Ich muss noch viel über die richtige Verwendung von Exceptions lernen.";
    


  • hey danke. Das hat geklappt mit

    if(eintrag==0)
    {
     throw "Ich glaube dass Dr.Prof lieber Dr.Fisch sein sollte aber ist ja auch egal";
    }
    


  • also ich habe es ohne Exceptions gelöst:

    if (File.is_open()) 
    {	
    	//TempStrings erzeugen um zwischenzuspeichern
    	string tempOrt;
    	string tempPartei;
    	string eintrag="j";
    	bool falscheEingabe=false;
    
        // Hier wäre eine Fehlerprüfung angebracht 
       while(eintrag=="j")
        { 
    	   E_WahlenDienst waehler; 
    		//Ortsabfrage:
            cout << "Ort: "; 
            cin >> tempOrt;
    		waehler.setOrt(tempOrt);
    
    		//Parteiabfrage:
            cout << "Partei: "; 
            cin >> tempPartei;
            waehler.setPartei(tempPartei);
    
            // Aktuelle Eingabe in die Datei schreiben:
    		File << waehler.getOrt() << "," << waehler.getPartei() << endl; 
    
    		//Abfrage, ob man noch mal waehlen will:
    		while(!falscheEingabe)
    		{
    		cout << endl << "Wollen Sie noch ein Eintrag machen?" << endl;
    		cout << "Geben Sie [j] fuer JA und [n] fuer Nein." << endl << "\t"; 
    			cin >> eintrag;
    			cout << endl;
    			transform(eintrag.begin(), eintrag.end(), eintrag.begin(), tolower);
    			if(eintrag=="j"||eintrag=="n") 
    			{
    				falscheEingabe=true;
    			}
    			else
    			{
    			    falscheEingabe=false;
    			}
    		}
    		falscheEingabe=false;
        } 
    
        File.close();   // Datei schließen 
    }
    

    dieser Beitrag ist für Dr.Fisch :p



  • is besser so weil wen du den user aufforderst etwas zu tun kann das kein exception sein ! 😉

    Mf Shade37337



  • Delikanli schrieb:

    also ich habe es ohne Exceptions gelöst

    Gut, dann kannst du dich als nächstes ja mit dem Thema der boolschen Logik auseinander setzen.

    if(eintrag=="j"||eintrag=="n") 
    			{
    				falscheEingabe=true;
    			}
    			else
    			{
    			    falscheEingabe=false;
    			}
    

    ➡

    falscheEingabe = eintrag == "j" || eintrag == "n";
    

    😉



  • falscheEingabe = eintrag == "j" || eintrag == "n";
    

    ➡

    string jn = eintrag;
    falscheEingabe = jn=="j"?jn=="j":(jn!="n"?(jn!="J"?(jn=="N"?jn!="n":jn=="N"):jn=="J"):jn!="j");
    

    😃 :p 👍

    Greetz, Swordfish

    PS: ioccc würdig?


Anmelden zum Antworten