Reads a wide-character string from a file
#include <stdio.h> #include <wchar.h> wchar_t *fgetws ( wchar_t * restrict buffer , int n , FILE * restrict fp );
The fgetws( ) function reads a sequence of up to n - 1 wide characters from the file referenced by the FILE pointer argument, and writes it to the buffer indicated by the char pointer argument, appending the string terminator character L'\0'. If a newline character (L'\n') is read, reading stops and the string written to the buffer is terminated after the newline character.
The fgetws( ) function returns the pointer to the wide string buffer if anything was written to it, or a null pointer if an error occurred or if the file position indicator was at the end of the file.
FILE *fp_in_wide; wchar_t buffer; wchar_t *line = &buffer; if (( fp_in_wide = fopen( "local.doc", "r" )) == NULL ) perror( "Opening input file" ); fwide( fp_in_wide ); line = fgetws( buffer, sizeof(buffer), fp_in_wide ); if ( line == NULL ) perror( "Reading from input file" );