How to use sprintf
dsimcha
dsimcha at yahoo.com
Sun Apr 24 14:22:39 PDT 2011
On 4/24/2011 5:22 PM, Justin Hanekom wrote:
> Hi all,
>
> I have what should be an *extremely* simple question that Im banging my head against: how to use
> sprintf to format something to a string.
>
> I have tried:
> import std.stdio;
> ...
> auto buffer = new char[12];
> auto chars_written = sprintf(cast(char *) buffer, "%d", 12345);
> writeln(chars_written);
> and various other ways of getting the buffer into sprintf, but no matter what I do the program seems to
> die when sprintf is called.
>
> What I'm ultimately trying to do here is format a number with thousands separated by commas.
>
> Any idea?
>
> Thanks, Justin
sprintf is a C function. The string you passed needs to be
zero-terminated. Since it's not, sprintf probably keeps trying to write
more stuff until it segfaults, because it never finds the zero
terminator. See std.string.toStringz
(http://www.digitalmars.com/d/2.0/phobos/std_string.html#toStringz).
More information about the Digitalmars-d
mailing list