Troja2k Geschrieben 27. Oktober 2003 Teilen Geschrieben 27. Oktober 2003 kurz und knapp : das wochenende ist vorbei und es lauern wiedermal ganz viele fragen, die die troja nicht alleine hinbekommt ich hab ja immenroch mein tolles programm *fg* mit case-anweisungen. aber wie springe ich von einer case-anweisung ganz raus aus dem programm, so dass es sich beendet... is bestimmt super simple..aber ich komm mal wieder nicht drauf Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
nic_power Geschrieben 27. Oktober 2003 Teilen Geschrieben 27. Oktober 2003 Hallo, die Antwort hast Du doch schon genannt exit() beendete das Programm. Unter Umständen solltes Du noch eine "Aufräumfunktion" um exit herum schreiben. Nic Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
CrazyRay Geschrieben 30. Oktober 2003 Teilen Geschrieben 30. Oktober 2003 das ist aber nicht sauber programmiert!!! wie wärs wenn du die case Anweisung mit Break verlässt (evt noch nen Merker setzt) und nach der Switch Anweisung dann auf nen bestimmten Wert oder sonst was abprüfst... dann kannst du main() auch ganz sauber mit return verlassen (und vorher natürlich auch noch alle Aufräumarbeiten erledigen...) ... meiner Meinung nach ... MfG Roman Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
nic_power Geschrieben 30. Oktober 2003 Teilen Geschrieben 30. Oktober 2003 Hallo, Original geschrieben von CrazyRay das ist aber nicht sauber programmiert!!! Kommt drauf an, bei einfachen Funktionen kann man vielleicht noch mit einem break und einem Marker arbeiten. Aber versuch das mal, wenn Du den Rückgabe-Wert noch durch 20 andere Schleifen, Funktionsaufrufe, Switch-Anweisungen und IF-Statements schleppen musst. Im Zweifelsfall kann man seine Aufräumfunktionen mit atexit() oder on_exit() registrieren. Ein return in main macht übrigens auch nichts anderes als exit mit dem return-Wert aufzurufen. Nic Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
GrEnE Geschrieben 30. Oktober 2003 Teilen Geschrieben 30. Oktober 2003 exit() hin oder her - man kann mehrere Ansätze verfolgen. Ich z.B. würde mit Exceptions arbeiten sauber und leicht! Ausserdem kann man dem exit() eine Zahl übergeben, mit was abgebrochen werden soll! Wenn man in seinem Code sich bereiche macht, wie #define READERROR 100 #define WRITEERROR 200 usw. und dann immer mit exit(WRITEERROR ); das Programm verlässt. Kann man diese Werte sogar per Script abfragen und weiß warum er abgeschmirt bzw. aus dem Programm gegegangen ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Knuddlbaer Geschrieben 5. November 2003 Teilen Geschrieben 5. November 2003 // gibt -1 zurück im Fehlerfalle inf foo() { switch(bar) { case 1: case 2: case 3: case 4: break; case n: return -1; } viele viele ANweisungen später (die ohnehin in eine andere Funktion sollten). } // wird Exception inf foo() { switch(bar) { case 1: case 2: case 3: case 4: break; case n: throw std::runtime_error("Was auch immer"); } viele viele ANweisungen später (die ohnehin in eine andere Funktion sollten). } [/php] Wo ist da das Problem ? Mit exit() riskiert man nur unnötig leaks. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.