Forum: Compiler & IDEs newlib printf float


von huegene (Gast)


Lesenswert?

ein sehr absurder bug (vieleicht) aber hat von euch schon mal jemand 
folgendes gesehen ?
eine zahl float test = 1.123456; wird mit
sprintf("%f",test);
zu
0.;23456 umgewandelt
über verschiedene versionen der newlib
WTF

von Marius W. (mw1987)


Lesenswert?

Ist ja auch kein Wunder, dass dir das um die Ohren fliegt... sprintf ist 
dafür da, einen char-Buffer zu beschreiben. Der Prototyp der Funktion 
sieht so aus:
1
int sprintf ( char * str, const char * format, ... );

Also nimm printf, wenn du es auf die Standardausgabe haben wollst, oder 
mache vor deinen Format-String noch einen Pointer auf einen ausreichend 
großen Buffer.

Gruß
Marius

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.