std::vwprintf, std::vfwprintf, std::vswprintf
int vwprintf( const wchar_t* format, va_list vlist ); |
(1) | |
int vfwprintf( std::FILE* stream, const wchar_t* format, va_list vlist ); |
(2) | |
int vswprintf( wchar_t* buffer, std::size_t buf_size, const wchar_t* format, va_list vlist ); |
(3) | |
, vlist, .
stream.buffer. size-1 , .| stream | ||
| buffer | ||
| buf_size | ||
| format | , , | |
| vlist | , |
( %), , . :
- -
%
- -
- () , :
-: ( )+:+( )- : . ,
+. #: . . : , (UB).0: . , (). (UB). ,-.
- () , ,
*. , .*int.-.
(: , .)
- () , ,
- ()
.,*.. .*int... . .
- ()
- () :
:
hh
|
h
|
() | l
|
ll
|
j
|
z
|
t
|
L
| ||
|---|---|---|---|---|---|---|---|---|---|---|
%
|
%. %%.
|
/ | / | / | / | / | / | / | / | / |
c
|
|
/ | / | int |
wint_t |
/ | / | / | / | / |
s
|
, . |
/ | / | char* |
wchar_t* |
/ | / | / | / | / |
di
|
. |
signed char |
short |
int |
long |
long long |
intmax_t |
signed size_t |
ptrdiff_t |
/ |
o
|
. |
unsigned char |
unsigned short |
unsigned int |
unsigned long |
unsigned long long |
uintmax_t |
size_t |
unsigned version of ptrdiff_t |
/ |
xX
|
|
/ | ||||||||
u
|
. |
/ | ||||||||
fF
|
. |
/ | / | double |
double ( C99) |
/ | / | / | / | long double |
e E
|
|
/ | / | / | / | / | / | |||
a A
|
|
/ | / | / | / | / | / | |||
g G
|
: ; . |
/ | / | / | / | / | / | |||
n
|
, . - . |
signed char* |
short* |
int* |
long* |
long long* |
intmax_t* |
size_t* |
ptrdiff_t* |
/ |
p
|
|
/ | / | void*
|
/ | / | / | / | / | / |
|
NaN , (int8_t ) <cinttypes>(C++) <inttypes.h> (C) ( PRIdMAX, PRIuMAX, (UB). | ||||||||||
size. std::vsnprintf, , , std::vswprintf, , .
| : |
| stdout, () | |
| stdout, () | |
C vwprintf, vfwprintf, vswprintf
| |