-> Click here to learn how to get live help <-
NAMEwprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf - formatted wide character output conversion
#include <stdio.h> #include <wchar.h> int wprintf(const wchar_t *format, ...); int fwprintf(FILE *stream, const wchar_t *format, ...); int swprintf(wchar_t *wcs, size_t maxlen, const wchar_t *format, ...); #include <stdarg.h> int vwprintf(const wchar_t *format, va_list args); int vfwprintf(FILE *stream, const wchar_t *format, va_list args); int vswprintf(wchar_t *wcs, size_t maxlen, const wchar_t *format, va_list args);
DESCRIPTIONThe fBwprintffP family of functions is the wide-character equivalent of the fBprintffP family of functions. It performs formatted output of wide characters.
The fBwprintffP and fBvwprintffP functions perform wide character output to fBstdoutfP. fBstdoutfP must not be byte oriented; see function fBfwidefP for more information.
The fBfwprintffP and fBvfwprintffP functions perform wide character output to fIstreamfP. fIstreamfP must not be byte oriented; see function fBfwidefP for more information.
The fBswprintffP and fBvswprintffP functions perform wide character output to an array of wide characters. The programmer must ensure that there is room for at least fImaxlenfP wide characters at fIwcsfP.
These functions are like the fBprintffP, fBvprintffP, fBfprintffP, fBvfprintffP, fBsprintffP, fBvsprintffP functions except for the following differences:
The treatment of the conversion characters fBcfP and fBsfP is different:
RETURN VALUEThe functions return the number of wide characters written, excluding the terminating null wide character in case of the functions fBswprintffP and fBvswprintffP. They return -1 when an error occurs.
CONFORMING TOISO/ANSI C, UNIX98
SEE ALSOprintf(3), fprintf(3), snprintf(3), fputwc(3), fwide(3), wscanf(3)
NOTESThe behaviour of fBwprintffP et al. depends on the LC_CTYPE category of the current locale.
If the fIformatfP string contains non-ASCII wide characters, the program will only work correctly if the LC_CTYPE category of the current locale at run time is the same as the LC_CTYPE category of the current locale at compile time. This is because the wchar_t representation is platform and locale dependent. (The GNU libc represents wide characters using their Unicode (ISO-10646) code point, but other platforms don't do this. Also, the use of ISO C99 universal character names of the form nnnn does not solve this problem.) Therefore, in internationalized programs, the fIformatfP string should consist of ASCII wide characters only, or should be constructed at run time in an internationalized way (e.g. using gettext or iconv, followed by mbstowcs).