blondi2108 Geschrieben 14. April 2008 Autor Geschrieben 14. April 2008 lege jetzt einfach mal die einzugebenen zahlen fest.. Zitieren
Klotzkopp Geschrieben 14. April 2008 Geschrieben 14. April 2008 wo ist denn jetzt bitte mein gedankenfehler....Was soll diese Funktion denn tun? Das sieht jedenfalls furchtbar kompliziert aus. Die Lösung ist viel einfacher. Als erstes solltest du std::string für die Eingabe verwenden, keine char-Arrays. Zitieren
blondi2108 Geschrieben 14. April 2008 Autor Geschrieben 14. April 2008 war nen tip von meinem ausbilder... nehme das prob jetzt mal mit nach hause... schönen feierabend... danke soweit Zitieren
Wodar Hospur Geschrieben 14. April 2008 Geschrieben 14. April 2008 Sollte nicht auch eine Exception abfangbar sein bei der Konvertierung des Strings in einen int? Ich bin mir bewusst das die Threadstellerin damit nicht viel anfangen kann. Aber es interessiert mich vom technischen Aspekt. Gleichzeitig frag ich mich ob ihr so eine Lösung als... unschön ansehen würdet? Zitieren
TDM Geschrieben 14. April 2008 Geschrieben 14. April 2008 Sollte nicht auch eine Exception abfangbar sein bei der Konvertierung des Strings in einen int? Ich bin mir bewusst das die Threadstellerin damit nicht viel anfangen kann. Aber es interessiert mich vom technischen Aspekt. Gleichzeitig frag ich mich ob ihr so eine Lösung als... unschön ansehen würdet? Bei einem explizieten Cast wäre das unschön. Wenn's eine Funktion macht (wie in Java z.B.), dann wär's ok. Zitieren
Klotzkopp Geschrieben 14. April 2008 Geschrieben 14. April 2008 Sollte nicht auch eine Exception abfangbar sein bei der Konvertierung des Strings in einen int?Mir ist keine Standardfunktion bekannt, die in so einem Fall eine Ausnahme werfen würde. Gleichzeitig frag ich mich ob ihr so eine Lösung als... unschön ansehen würdet?Kommt drauf an, wo man die Ausnahme fängt. Ausnahme bieten sich immer dann an, wenn die Fehlerbehandlung an übergeordneter Stelle stattfindet. Einen try-block um solche eine Umwandlung finde ich persönlich unangemessen. Das ist IMHO keine Ausnahme, sondern ein normaler Fall im Programmfluss. Zitieren
Wodar Hospur Geschrieben 15. April 2008 Geschrieben 15. April 2008 Ich dachte mir das in einer Form wie hier. Außerdem denke ich ist eine falsch eingegebene Zahl/String doch ein Fehler und wir können von dem .. Normalfall ausgehen das der Benutzer richtige Zahlen eingibt. Aber falls er es nicht schafft kann eingegriffen werden. Zitieren
Klotzkopp Geschrieben 15. April 2008 Geschrieben 15. April 2008 Ich dachte mir das in einer Form wie hier. Du meinst boost::lexical_cast? Das tut in etwa das, was ich hier beschrieben habe Wenn man so eine Funktion benutzt, muss man die Exception natürlich fangen. Außerdem denke ich ist eine falsch eingegebene Zahl/String doch ein Fehler und wir können von dem .. Normalfall ausgehen das der Benutzer richtige Zahlen eingibt. Die Frage ist doch, ob es eine Ausnahmesituation darstellt, d.h. dass das Auftreten nicht vorhersehbar ist. Bei einer Benutzereingabe ist das sicherlich der Fall, aber IMHO nicht generell bei einer Umwandlung von Strings in Zahlen. Aber das ist vermutlich Geschmackssache. Zitieren
TDM Geschrieben 15. April 2008 Geschrieben 15. April 2008 Bei einer Benutzereingabe ist das sicherlich der Fall, aber IMHO nicht generell bei einer Umwandlung von Strings in Zahlen. Aber das ist vermutlich Geschmackssache. Ist das im Endeffekt nicht das selbe? Wenn ein String nicht in eine Zahl konvertiert werden kann, ist das doch eine Ausnahme für das entsprechende Format des Strings (nur Zahlen [und ggf. ein Dezimalpunk/-komma]). Zitieren
Klotzkopp Geschrieben 15. April 2008 Geschrieben 15. April 2008 Ist das im Endeffekt nicht das selbe? Wenn ein String nicht in eine Zahl konvertiert werden kann, ist das doch eine Ausnahme für das entsprechende Format des Strings (nur Zahlen [und ggf. ein Dezimalpunk/-komma]).Aber nur, wenn du tatsächlich ein bestimmtes Format erwartest. Für mich ist eine Ausnahme immer ein unerwarteter Fehler. Wenn ich einen String parse, der syntaktisch eine Zahl sein kann, aber nicht muss, ist eine fehlgeschlagene Umwandlung für mich nichts Unerwartetes. Zitieren
TDM Geschrieben 15. April 2008 Geschrieben 15. April 2008 Aber nur, wenn du tatsächlich ein bestimmtes Format erwartest. Für mich ist eine Ausnahme immer ein unerwarteter Fehler. Wenn ich einen String parse, der syntaktisch eine Zahl sein kann, aber nicht muss, ist eine fehlgeschlagene Umwandlung für mich nichts Unerwartetes. Ja, aber in dem Fall würde doch ein bestimmtes Format erwartet werden. :confused: (Eben nur Zahlen) Wie auch immer, ich glaub das geht zu weit ins OT. Für die Threaderstellerin ist es sicher einfacher, wenn sie isDigit() aufruft. Zitieren
blondi2108 Geschrieben 16. April 2008 Autor Geschrieben 16. April 2008 danke das ihr die diskussion so heiß weiter geführt habt :uli ... ich versteh allerdings nur bahnhof :upps Zitieren
Klotzkopp Geschrieben 16. April 2008 Geschrieben 16. April 2008 Wie weit bist du denn jetzt? Hast du es geschafft, die Eingabe in einen std::string einzulesen? Zitieren
blondi2108 Geschrieben 16. April 2008 Autor Geschrieben 16. April 2008 nicht wirklich.. hatten gestern schule und unser lehrer meinte dann tatsächlich, dass wir das so komplex noch gar nicht machen sollen.. trotzdem werde ich sobald ich mal wieder luft habe daran weiter tüfteln... müssen jetzt nen fahrscheinautomaten programmieren und sollen wenn der fertig ist mit der fehlerabfrage so beginnen.. werde mich im zweifel dann man wieder bei euch melden... kenne von java-code die try-catch blöcke, ich weiß, dass es die in c auch gibt.. werden sie genauso genutzt? allerdings möchte ich es auf dem anderen weg auch noch schaffen.. lieben dank, das ihr euch so kümmert... Zitieren
Klotzkopp Geschrieben 16. April 2008 Geschrieben 16. April 2008 kenne von java-code die try-catch blöcke, ich weiß, dass es die in c auch gibt.. Da irrst du dich. In C gibt es keine Exceptions, zumindest nicht im Standard. Manche Compiler und Bibliotheken enthalten allerdings ähnliche Mechanismen. "Echte" Exceptions gibt es allerding in C++. werden sie genauso genutzt?Die Benutzung in C++ ist ähnlich wie in Java, allerdings gibt es keine "Checked Exceptions". Zitieren
TDM Geschrieben 16. April 2008 Geschrieben 16. April 2008 Da irrst du dich. In C gibt es keine Exceptions, zumindest nicht im Standard. Ich erinner mich grad an die Windowsfunktionen die ein DWORD zurückgegeben haben. -> Mitunter großer Switch-Case-Block um die genaue Fehlerbeschreibung anzuzeigen. Zitieren
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.