fwscanf_s()
reads a formatted string from an input stream and validates the arguments at runtime before printing them. The declaration for fwscanf_s()
is shown below:
int fwscanf_s( FILE *stream, const wchar_t *format, ...);
Note: The
fwscanf_s
function is not supported by some compilers. If a compiler supportsfwscanf_s
, the value ofSTDC_WANT_LIB_EXT1
is set to 1.
stream
: Pointer to the input stream from where input is to be read.format
: White character string where data is written....(additional arguments)
: If format
consists of format specifiers (e.g., %s, %d, …), the additional arguments consist of the strings where data is read.The fwscanf_s()
function returns the number of characters read from the input stream if the data is read successfully. A negative value is returned if there is an error when reading from the input stream.
Note: The return value of
fwscanf_s()
does not count terminating null characters.
Consider the code snippet below, which demonstrates the use of fwscanf_s()
:
#include <stdio.h>#include <wchar.h>int main() {wchar_t buffer[80];FILE* fPointer = fopen("fwscanfExample.txt", "r");while(fwscanf_s(fPointer, L"%ls", buffer) > 0){fwprintf(stdout, L"%S ",buffer);}fclose(fPointer);return 0;}
This is fwscanf_s() Example code.
The fopen() function is used in line 8 to open the file for reading. The fwscanf_s()()
function is used in line 10 to read from the file and write to buffer
, which is created in line 6.
Note: The function above is not supported by the GCC compiler, hence you will get an implicit declaration of function
fwscanf_s
error. Use the following variant to get the job done:int fwscanf( FILE *stream, const wchar_t *format, ...);
.
Free Resources