[ 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/2,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