What is fwscanf() in C?
fwscanf() reads data from stream and stores it in accordance with the format specified in the format string.
Prototype
int fwscanf (FILE* stream, const wchar_t* format, ...);
Parameters
FILE* stream: The pointer to the stream from which the data is read.const wchar_t* format: This specifies how the data will be read from thestream....(additional arguments): If the format string contains format specifiers, additional arguments corresponding to the specifiers can be given here.
Return Type
fwscanf()returns the number of characters read upon success. If the function fails, then the count returned can be less than the number of characters written or even zero.fwscanf()raises thefeofflag if end of file is encountered while reading, orferrorif an error occurs.
Example
#include <stdio.h>#include <wchar.h>int main() {wchar_t buffer[80];//create an output file and write the contents to itconst wchar_t output[80] = L"This was read from file";FILE* inputFile;inputFile = fopen("Temp.txt", "w+");fwprintf(inputFile, L"%S\n",output);fclose(inputFile);//read from fileinputFile = fopen("Temp.txt","r+");while(fwscanf(inputFile, L"%ls", buffer) > 0){fwprintf(stdout, L"%S ",buffer);}fwprintf(stdout, L"\n");fclose(inputFile);return 0;}
Explanation
In the code above, we first create a file called Temp.txt and write the contents of the output array to it as shown below:
fwprintf(inputFile, L"%ls\n",output);
Here, the format specifier “%S” represents wide string.
When reading from the file, we use a while loop to test if the fwscanf() has encountered the EOF character or not. If it encounters the EOF character, it returns a negative value or zero, which can be used to test the condition as follows:
while(fwscanf(inputFile, L"%ls", buffer) > 0)
Once the contents have been read from the file into the buffer array, we can print them using the fwprintf() function.
Free Resources
Copyright ©2026 Educative, Inc. All rights reserved