C: long double in char* umwandeln

Hallo!
Gibt es eine C-Funktion, mit der ich ein long double in einen string (char*) umwandeln kann? Beim Googlen habe ich leider nur C+±Lösungen gefunden, aber stringstream und die boost-Lösung
boost::lexical_cast(ldvar).c_str()
sind mir wegen des Umwegs einfach zu langsam (oder gibt es einen weg, mit lexical_cast direkt ein char* zu erzeugen?)

Danke, Hans

Hallo!

Gibt es eine C-Funktion, mit der ich ein long double in einen
string (char*) umwandeln kann?

sprintf vielleicht? (Oder übersehe ich jetzt was? )

Gruß M.

Hallo,

beim Googlen (Suchbegriff: c long to string) habe ich eine C- Funktion in einem Forum gefunden. http://www.mikrocontroller.net/topic/38903
char *itoa(char *buf, unsigned int val, char pad);

Hier habe ich nur die Deklaration geschrieben, um nicht das Copyright des Beitragerstellers zu verletzten!

Mfg,
Stefan

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Hi, danke erstmal für deine Antwort

beim Googlen (Suchbegriff: c long to string) habe ich eine C-
Funktion in einem Forum gefunden.
http://www.mikrocontroller.net/topic/38903
char *itoa(char *buf, unsigned int val, char pad);

Diese Fun ktion ist meines Wissens nach standardisiert. Aber sie wandelt halt ein int in einen cstring um und nicht long double. (Kann es sein, dass es long double in C gar nicht gibt). Generell gibt es Funtionen xtoa oder atox, aber leider nur für das Standard-double

Mfg,
Stefan

mfg, Hans

Hallo!

Hi, danke auch für deine Antwort

Gibt es eine C-Funktion, mit der ich ein long double in einen
string (char*) umwandeln kann?

sprintf vielleicht? (Oder übersehe ich jetzt was?
)

Ich hab mal gegoogelt und herausgefunden, dass es wirklich so geht, nur leider ist diese Methode anscheinend extrem langsam (bei jedem Aufruf den Formatstring parsen etc. ). Langsam glaube ich, dass ich doch einfach lexical_cast verwenden sollte.

mfg, Hans

Hallo!

Gibt es eine C-Funktion, mit der ich ein long double in einen
string (char*) umwandeln kann?

char *qgcvt(long double v, int maxdigits, char *buffer)

Grüße

CMБ

Gibt es eine C-Funktion, mit der ich ein long double in einen
string (char*) umwandeln kann?

char *qgcvt(long double v, int maxdigits, char *buffer)

Oder besser nicht:

_$> man qgcvt | cat
QECVT(3) Linux Programmer’s Manual

NAME
qecvt, qfcvt, qgcvt - convert a floating-point number to a string


Notes
These functions are obsolete. Instead, sprintf() is recommended.

SEE ALSO
ecvt(3), ecvt_r(3), gcvt(3), sprintf(3)_

Hallo,

Gibt es eine C-Funktion, mit der ich ein long double in einen
string (char*) umwandeln kann?

char *qgcvt(long double v, int maxdigits, char *buffer)

Oder besser nicht:

Das mußt Du mir nicht sagen. Der
OP wollte eine *C*-Funktion, die
nicht sprintf() heißt. Nun ja,
die hab ich ihm genannt.

Grüße

CMБ