sprintf: Will 0 statt gar nix...
-
Hi,
ich will mit sprintf etwas in einen String schreiben, z.B. sowas:
sprintf(buf, "%4.d", 1); // im String steht nun " 1" sprintf(buf, "%4.d", 0); // im String sollte nun " 0" stehen
Das Problem ist, dass beim zweiten Beispiel im String dann nicht das steht, was ich im Kommentar stehen habe, sondern einfach ein leerer String, da er die 0 anscheinend nicht als Zahl ansieht oder was weiß ich. Wie bekomm ich da am einfachsten ne 0 hin?
MfG
-
lass am besten den Punkt in den Format-Angaben weg, dann sollte es eigentlich funktionieren.
man: printf(3):An optional precision, in the form of a period `.' followed by an optional digit string. If the digit string is omitted, the precision is taken as zero.
[...]
diouxX
[...]The precision, if any, gives the minimum number of digits that must appear;
-
Es sollte auch so funktionieren:
sprintf(buf, "%04.d", 1);
-
den punkt sollte man weglassen, wenn man keine praezision angibt.
genau daran liegts naemlich:printf("%4.d\n", 0); printf("%4d\n", 0);
die ausgaben sind verschieden, wegen dem punkt.
eine fuehrende null (und ein punkt) ist keine loesung, wie jeder bemerken wird, der es ausprobiert.