printf |
Discworld driver help |
printf |
Name
printf() - formatted output conversion
Synopsis
void printf( string format, ... );
Description
The output is sent to this_user(), in the same manner as the write() efun. Implemented by Lynscar (Sean A Reith).
This version supports the following as modifiers:
' ' | pad positive integers with a space. | |
'+' | pad positive integers with a plus sign. | |
'-' | left adjusted within field size. |
Note: std (s)printf() defaults to right justification, which is unnatural in the context of a mainly string based language but has been retained for "compatability".
'|' | centered within field size. | |
'=' | column mode if strings are greater than field size. This is only meaningful with strings, all other types ignore this. Columns are auto-magically word wrapped. | |
'#' | table mode: print a list of '\n' separated 'words' in a table within the field size. This is only meaningful with strings. | |
'@' | the argument is an array. the corresponding format_info (minus the '@') is applied to each element of the array. | |
''X'' | the char(s) between the single-quotes are used to pad to field size (defaults to space) (if both a zero (in front of field size) and a pad string are specified, the one specified second overrules). |
Note: to include "'" in the pad string, you must use "\\'" (as the backslash has to be escaped past the interpreter), similarly, to include "\" requires "\\\\".
'.' followed by a number | precision of n, simple strings truncate after this (if precision is greater than field size, then field size = precision), tables use precision to specify the number of columns (if precision not specified then tables calculate a best fit), all other types ignore this. | |
':' followed by a number | n specifies the field size _and_ the precision, if n is prepended by a zero then it is padded with zeros instead of spaces. | |
a number | specifies the field size, a '*' specifies to use the corresponding arg as the field size. If n is prepended with a zero, then is padded zeros, else it is padded with spaces (or specified pad string). |
The following are the possible type specifiers:
'%' | in which case no arguments are interpreted, and a "%" is inserted, and all modifiers are ignored. | |
'O' | the argument is an LPC datatype. The format is suitable for printing any type (useful for debugging) | |
's' | the argument is a string. | |
'd' | the integer arg is printed in decimal. | |
'i' | same as above. | |
'c' | the integer arg is printed as a character. | |
'o' | the integer arg is printed in octal. | |
'x' | the integer arg is printed in hex. | |
'X' | the integer arg is printed in hex (with A-F in capitals). | |
'f' | floating point number |