EFUN: printf:

SYNTAX:
void printf( fmt_str[, var1, var2, ...] );
  string fmt_str;
  mixed var#;

DESCRIPTION:
Printf writes text to screen in according to a specified format string
'fmt_str'. If 'fmt_str' consists of plain text, printf does the same as
the efun write.

To print the value of variables, this is given in the format string 
'fmt_str' as '%<variable type>'. Multiple variables can be put into the
format string this way, optionally combined with plain text. To include
a '%' sign as a character in the output, it is necessary to write it as
a double percent sign '%%'.

Valid variable type specifiers are:
"%s" for strings.
"%d" or "%i" for integers in decimal representation.
"%o" for integers in octal representation.
"%x" for integers in hexidecimal representation.
"%X" as "x" except letters are capitalised.
"%O" for any LPC datatype to be printed in an arbitrary format.

To further format the text to be printed, several modifiers can be put
between the percent sign and the variable type specifier in the format
string. The following modifiers can be included to specify the formatting
information. Order is not important unless otherwise specified. 'n' is
used to specify a integer. Instead of 'n' a '*' can be used, in which
case the next variable is used as the number. The 'pad string' mentioned
below is a series of characters to fill up the space between the side
of the screen and the text or variable.

Modifiers:
n specifies the field size, if prepended with a zero then the pad
     string is set to "0".
m.n the m specifies the field size, n specifies the precision, for simple
      (not columns or tables) strings specifies the truncation length.
:n  specifies the field size AND the precision (identical to n.n).
      If n is prepended by a zero then the pad string is set to "0".
'X' the pad string is set to the char(s) between the single quotes.
      If the field size is also prepended with a zero then whichever
      is specified last will overrule.
      NOTE:  to include single quotes in the pad string, you must
      use \\' (as the backslash has to be escaped past the interpreter).
      Likewise, to include a backslash in the pad string requires \\\\.
<space> pad positive integers with a space.
+ pad positive integers with a plus sign.
- left adjusted within field size.
      NB: std (s)printf() defaults to right justification, which is
          unnatural in the context of a mainly string based language
          but has been retained for "compatibility" ;)
| centered within field size.
= column mode. Ignored unless the argument type specifier is s.
      Field size must be specified, if precision is specified then it
      specifies the width for the string to be wordwrapped in, if not
      then the field size is.  The field size specifies the width of
      the column.
# table mode.  Ignored unless the argument type specifier is s.
      Field size must be specified, if precision is specified then it
      specifies the number of columns in the table, otherwise the
      number is "optimally" generated.  Table mode is passed a list
      of slash-n separated 'words' which are put in a format similar
      to that of ls.
@ the argument is an array.  the corresponding AFS (minus all
      "@") is applied to each element of the array.

RETURN VALUE:
none

SEE ALSO:
sprintf
sscanf

EXAMPLES:
See /doc/examples/printf_exa.c for examples of (s)printf.
This 'example' is actually a room with several commands to
demonstrate the various formatting options.
