Pike v7.3 release 11 running Hilfe v2.0 (Incremental Pike Frontend)
> int screen_width=70;
Result: 70
> mixed sample;
> write(sprintf("fish: %c\n", 65));
fish: A
Result: 8
> write(sprintf("Hello green friends\n"));
Hello green friends
Result: 20
> write(sprintf("num: %d\n", 10));
num: 10
Result: 8
> write(sprintf("num: %+10d\n", 10));
num: +10
Result: 16
> write(sprintf("num: %010d\n", 5*2));
num: 0000000010
Result: 16
> write(sprintf("num: %|10d\n", 20/2));
num: 10
Result: 16
> write(sprintf("%|*s\n",screen_width,"THE NOT END"));
THE NOT END
Result: 71
> write(sprintf("%|=*s\n",screen_width, "fun with penguins\n"));
fun with penguins
Result: 71
> write(sprintf("%-=*O\n",screen_width,({ "fish", 9, "gumbies", 2 })));
({ /* 4 elements */
"fish",
9,
"gumbies",
2
})
Result: 426
> write(sprintf("%-=*s\n", screen_width,
>> "This will wordwrap the specified string within the "+
>> "specified field size, this is useful say, if you let "+
>> "users specify their screen size, then the room "+
>> "descriptions will automagically word-wrap as appropriate.\n"+
>> "slosh-n's will of course force a new-line when needed.\n"));
This will wordwrap the specified string within the specified field
size, this is useful say, if you let users specify their screen size,
then the room descriptions will automagically word-wrap as
appropriate.
slosh-n's will of course force a new-line when needed.
Result: 355
> write(sprintf("%-=*s %-=*s\n", screen_width/2,
>> "Two columns next to each other (any number of columns will "+
>> "of course work) independantly word-wrapped, can be useful.",
>> screen_width/2-1,
>> "The - is to specify justification, this is in addherence "+
>> "to std sprintf which defaults to right-justification, "+
>> "this version also supports centre and right justification."));
Two columns next to each other (any The - is to specify justification,
number of columns will of course this is in addherence to std
work) independantly word-wrapped, sprintf which defaults to
can be useful. right-justification, this version
also supports centre and right
justification.
Result: 426
> write(sprintf("%-$*s\n", screen_width,
>> "Given a\nlist of\nslosh-n\nseparated\n'words',\nthis option\n"+
>> "creates a\ntable out\nof them\nthe number of\ncolumns\n"+
>> "be forced\nby specifying a\npresision.\nThe most obvious\n"+
>> "use is for\nformatted\nls output."));
Given a list of slosh-n
separated 'words', this option
creates a table out of them
the number of columns be forced
by specifying a presision. The most obvious
use is for formatted ls output.
Result: 312
> write(sprintf("%-#*s\n", screen_width,
>> "Given a\nlist of\nslosh-n\nseparated\n'words',\nthis option\n"+
>> "creates a\ntable out\nof them\nthe number of\ncolumns\n"+
>> "be forced\nby specifying a\npresision.\nThe most obvious\n"+
>> "use is for\nformatted\nls output."));
Given a creates a by specifying a
list of table out presision.
slosh-n of them The most obvious
separated the number of use is for
'words', columns formatted
this option be forced ls output.
Result: 312
> sample = ([ "align":"left", "valign":"middle" ]);
Result: ([ /* 2 elements */
"align":"left",
"valign":"middle"
])
> write(sprintf("<td%{ %s='%s'%}>\n", (array)sample));
<td valign='middle' align='left'>
Result: 34
> write(sprintf("Of course all the simple printf options "+
>> "are supported:\n %s: %d %x %o %c\n",
>> "65 as decimal, hex, octal and a char",
>> 65, 65, 65, 65));
Of course all the simple printf options are supported:
65 as decimal, hex, octal and a char: 65 41 101 A
Result: 106
> write(sprintf("%[0]d, %[0]x, %[0]X, %[0]o, %[0]c\n", 75));
75, 4b, 4B, 113, K
Result: 19
> write(sprintf("%|*s\n",screen_width, "THE END"));
THE END
Result: 71