Double Werte in String - Schnellste Lösung geuscht



  • Hey Leute,

    ich möchte gerne mehere Double Werte in einem String haben. Die Ausgabe des Strings sähe so aus:

    printf("%d.%d.%d(%d-%0d-%d) ", times->tm_mday, times->tm_mon + 1, times->tm_year + 1900, times->tm_hour, times->tm_min, times->tm_sec);
    

    Ich würde nur sehr ungern mit strcat() und doubletoASCII arbeiten, da dies zu viele Einzelschritte sind.

    Kennt jmd. eine bessere Lösung ?

    Mfg Homie


  • Mod



  • double? Ich sehe kein double.



  • danke, sprintf wars 😉

    Wutz schrieb:

    double? Ich sehe kein double.

    Double Werte sind die, die er sich aus der Zeit Struktur holt.
    In C auch long float gennant <- meintest du das ?



  • Homie schrieb:

    Double Werte sind die, die er sich aus der Zeit Struktur holt.

    1. Wer ist 'er'?
    2. in der Zeit Struktur sind keine Double Werte.



  • Dann schau dir mal die Definition von der struct tm an:
    http://www.cplusplus.com/reference/clibrary/ctime/tm/

    Das d nach dem % bedeutet "Dezimal".
    Im Unterschied zu x und o.



  • Noch eine Anmerkung zu deinem Zeitformat:

    Uhrzeiten werden üblicherweise durch : getrennt.
    Zeitangaben mit - werden meist in der Form JJJJ-MM-TT interpretiert.
    Zudem sollten deine Zahlen auch mindestens zweistellig sein.

    Wenn du das JJJJ-MM-TT Format benutzt, kannst du die Zeiten auch als String sortieren.

    printf("%4d-%02d-%02d(%02d:%02d:%02d) ", times->tm_year + 1900, times->tm_mon + 1, times->tm_mday, times->tm_hour, times->tm_min, times->tm_sec);
    


  • Für den ganzen Zeitausgabekram gibt es auch die Funktion strftime, da benötigt man kein Wissen um double und dergleichen.


Log in to reply