fwscanf()
reads data from stream
and stores it in accordance with the format specified in the format
string.
int fwscanf (FILE* stream, const wchar_t* format, ...);
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 the stream
....(additional arguments)
: If the format string contains format specifiers, additional arguments corresponding to the specifiers can be given here.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 the feof
flag if end of file is encountered while reading, or ferror
if an error occurs.#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;}
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