atof()



  • Hallo,

    eine kurze Frage: Könnte es zu Problemen führen, wenn ein leerer String mit atof(string.c_str()) in einen Double umgewandelt wird? Die Funktion atof(string.c_str()) gibt dann eine einfache 0 zurück.



  • Nein.

    <a href= schrieb:

    atof - C++ Reference">If the first sequence of non-whitespace characters in str does not form a valid floating-point number as just defined, or if no such sequence exists because either str is empty or contains only whitespace characters, no conversion is performed and the function returns 0.0.



  • Vielen Dank für die Antwort.


  • Mod

    Navy schrieb:

    Die Funktion atof(string.c_str()) gibt dann eine einfache 0 zurück.

    Das ist doch schon selbst ein Problem. Woher weißt du hinterher, ob nicht 0 im String stand? Die C++-Funktionen für diese Aufgabe (z.B. alle möglichen Streams - denn wie kommen die Daten eigentlich in deinen String, wenn nicht über einen Stream?) geben erkennbare Benachrichtigungen im Fehlerfall.



  • Woher weißt du hinterher, ob nicht 0 im String stand?

    Genau das finde ich eine ziemlich schlechte Designentscheidung... Eigentlich muss man beim verwenden dieser Funktion selbst den string prüfen, bevor man ihn der Funktion füttert. Oder man verwendet halt stod: http://www.cplusplus.com/reference/string/stod/


Anmelden zum Antworten