sprintf in char* Funktion = datenmüll?
-
ehemaliger-call-by-value- schrieb:
int test (float f, char * p) { sprintf(p, "%f", f); return 1; }
Wozu der Rückgabewert ?
-
man könnte wohl damit das sprintf in eine if-bedingung packen(sprintf(...),1 <- wäre ja viel schwerer).
-
wurst schrieb:
man könnte wohl damit das sprintf in eine if-bedingung packen(sprintf(...),1 <- wäre ja viel schwerer).
Könnte man, und dann ??
if ( sprintf(p, "%f", f) == ... ) // dann.. ????
-
Kartoffelnesser schrieb:
wurst schrieb:
man könnte wohl damit das sprintf in eine if-bedingung packen(sprintf(...),1 <- wäre ja viel schwerer).
Könnte man, und dann ??
if ( sprintf(p, "%f", f) == ... ) // dann.. ????
if ( sprintf(p, "%f", f) < 0 ) return 0; /* sprintf fehlgeschlagen */
manchaml finde ich sowas wichtig, auch wenn es nicht immer notwendig einen Rückgabewert zu liefern. Bei einer Bibliothek würde ich sowas auf jeden Fall aufbauen. Wobei ich die Fkt so geschrieben hätte:
int test (float f, char * p) { int ret; if(p == NULL) return 0; ret = sprintf(p, "%f", f); if(ret < 0) return 0; return 1; }
-
supertux schrieb:
int test (float f, char * p) { int ret; if(p == NULL) return 0; ret = sprintf(p, "%f", f); if(ret < 0) return 0; return 1; }
returniere doch besser 'ret' wenn's geklappt hat. manchmal ist es ganz nützlich, zu wissen, wie viele zeichen sprintf ausgespuckt hat.
-
'ret' zu returnieren (*lol*) wäre auch eine gute Idee.
-
supertux schrieb:
if ( sprintf(p, "%f", f) < 0 ) return 0; /* sprintf fehlgeschlagen */
Kannst du mir bitte ein Beispiel nennen, in dem sprintf einen Wert kleiner Null liefert ?
-
Kartoffelnesser schrieb:
supertux schrieb:
if ( sprintf(p, "%f", f) < 0 ) return 0; /* sprintf fehlgeschlagen */
Kannst du mir bitte ein Beispiel nennen, in dem sprintf einen Wert kleiner Null liefert ?
man sprintf schrieb:
If an output error is encountered, a negative value is returned.
hab mich nur an die Doku gehalten. Aber stimmt, bei sprintf wird das wahrscheinlich nie der Fall sein. Daran habe ich nicht gedacht.
-
man sprintf schrieb:
If an output error is encountered, a negative value is returned.
Komisch, das steht in meiner Doku nicht drin.
-
Hallo.
Wenn ich bei mir folgendes schreibe:
void inttostr(char *buffer, int Zahl) // Datenbereich für die Zahl , Übergebener Zahlenwert { sprintf(buffer, "%i", Zahl); }
steht nach Ausfürhung der Funktion in der Variable, die ich an buffer übergebe
nie die erste Zahl aus der Variable Zahl drin?!?Beispiel:
Ich will 2312 in ein String schreiben. Im String steht nachher aber " 312".
Mit dem Leerzeichen vorne!!!!Warum? Jemand ne Idee?
Gruß