Node:Table of Input Conversions, Next:Numeric Input Conversions, Previous:Input Conversion Syntax, Up:Formatted Input
Here is a table that summarizes the various conversion specifications:
%d
%i
%o
%u
%x
, %X
%e
, %f
, %g
, %E
, %G
%s
l
modifier
determines whether the output is stored as a wide character string or a
multibyte string. If %s
is used in a wide character function the
string is converted as with multiple calls to wcrtomb
into a
multibyte string. This means that the buffer must provide room for
MB_CUR_MAX
bytes for each wide character read. In case
%ls
is used in a multibyte function the result is converted into
wide characters as with multiple calls of mbrtowc
before being
stored in the user provided buffer.
%S
%ls
which is supported for compatibility
with the Unix standard.
%[
l
modifier
determines whether the output is stored as a wide character string or a
multibyte string. If %[
is used in a wide character function the
string is converted as with multiple calls to wcrtomb
into a
multibyte string. This means that the buffer must provide room for
MB_CUR_MAX
bytes for each wide character read. In case
%l[
is used in a multibyte function the result is converted into
wide characters as with multiple calls of mbrtowc
before being
stored in the user provided buffer.
%c
If the %c
is used in a wide stream function the read value is
converted from a wide character to the corresponding multibyte character
before storing it. Note that this conversion can produce more than one
byte of output and therefore the provided buffer be large enough for up
to MB_CUR_MAX
bytes for each character. If %lc
is used in
a multibyte function the input is treated as a multibyte sequence (and
not bytes) and the result is converted as with calls to mbrtowc
.
%C
%lc
which is supported for compatibility
with the Unix standard.
%p
%p
output conversion for printf
. See Other Input Conversions.
%n
%%
%
character in the input stream. No
corresponding argument is used. See Other Input Conversions.
If the syntax of a conversion specification is invalid, the behavior is undefined. If there aren't enough function arguments provided to supply addresses for all the conversion specifications in the template strings that perform assignments, or if the arguments are not of the correct types, the behavior is also undefined. On the other hand, extra arguments are simply ignored.