[ Term I/O | Reference Manual | Alphabetic Index ]
sprintf(-String, +Format, ?ArgList)
The arguments in the argument list ArgList are interpreted according to the
Format string and the formatted result is unified with String.
- String
- Variable or String.
- Format
- String or Atom.
- ArgList
- List or any Term.
Description
This predicate works exactly like printf/2,3 except that the formatted
result is delivered in the form of a string. See printf/3 for details.
Note that for simple cases it is usually more efficient to use
primitives like concat_string/2, join_string/3 or number_string/2.
Modes and Determinism
Modules
This predicate is sensitive to its module context (tool predicate, see @/2).
Exceptions
- (5) type error
- String is instantiated to something other than a string.
- (5) type error
- Format is not an atom or a string.
- (5) type error
- ArgList contains argument whose type does not correspond to the control sequence.
- (7) string contains unexpected characters
- Format is not correct, it contains too many asterisks or a control character is missing or there is a redundant character before the control character.
- (8) bad argument list
- ArgList has not enough or too many arguments.
Examples
Success:
?- sprintf(String, "abc %s ghi %+*.*E...", ["def", 2, 3, 12.34]).
String = "abc def ghi +1.234E+01..."
yes.
?- sprintf(String, "abc %12c %*n", [77, 3]).
String = "abc MMMMMMMMMMMM \n\n\n"
yes.
?- sprintf("x9", "x%d", [3]).
no.
See Also
concat_string / 2, join_string / 3, number_string / 2, printf / 2, printf / 3