Frage zu sprintf und Co.



  • Gibt es eine Möglichkeit vor einem sprintf-Aufruf festzustellen, wie groß der Zielpuffer sein muss? Kennt jemand eine fertige Funktion? Ich möchte ungerne eine solche Funktion selbst schreiben. Mir wäre es zu aufwendig/zeitintensiv alle Formate zu implementieren.



  • Im Prinzip ja, aber das willst Du wahrscheinlich nicht.

    Die printf-Familie gibt die Anzahl der geschriebenen Zeichen ohne die '\0' zurück, so daß Du einfach einen Dummy (/dev/null) nehmen kannst und dort deinen Ausdruck hinschreibst, den Rückgabewert abspeicherst und entsprechend Speicher bereitstellst. Die Lösung ist ziemlich genau so, wie sie sich anhört: häßlich.

    Kennst Du snprintf schon? Dort kannst Du angeben, wie viele Zeichen höchstens geschreiben werden dürfen.


Anmelden zum Antworten