_snwprintf_s
functionThe _snwprintf_s
function is defined in the wchar.h
standard library and is used to write formatted data to a string. The structure of the _snwprintf_s
function is as follows:
int _snwprintf_s(wchat_t * buffer, size_t sizeOfBuffer, size_t count, const wchar_t * format, ...);
buffer
is a pointer to a wide character array to copy to.sizeOfBuffer
is the size of the buffer
in words.count
is the maximum number of characters to copy.format
is a pointer to a wide character format string....
represents optional parameters passed due to the format
string.buffer
successfully._snwprintf_s
functionThe following code demonstrates the usage of the _snwprintf_s
function:
#include<stdio.h>#include<wchar.h>int main() {wchar_t buffer[100];int i = 10, j = 8;wchar_t format[] = L"You scored %d/%d";int written = _snwprintf_s(buffer, 100, 15, format, j, i);wprintf(L"Characters Written: %d\n", written);wprintf(L"%S", buffer);return 0;}
Output:
Characters Written: 15
You scored 8/10
In the example above, the format
string is copied to the buffer
after the formatting is applied. The format
string You scored %d/%d
evaluates to You scored 8/10
, because, in line 9, the argument right next to format
is j
and then i
, which have the values 8
and 10
respectively. The function _snwprintf_s
also returns the number of characters written to the buffer in the variable written
. At the end of the program, the number of characters written and the contents of the buffer are printed onto the standard output.
Note: The function above is not supported by the GCC compiler, so you will get an
implicit declaration of function…
error.
Use the following variant _snwprintf
to get the job done:
int _snwprintf(wchat_t * buffer, size_t count, const wchar_t * format, ...);
All parameters are the same as _snwprintf_s
, except that sizeOfBuffer
is not a parameter of _snwprintf
. The return value of the above function is the same as _snwprintf_s
.
Free Resources