Name

fgetws

Synopsis

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 wchar_t 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.

Example

FILE *fp_in_wide;
wchar_t buffer[4096];
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" );

See Also

fputws(), putws(), fgetwc(), fgets(), fputs()

Get C in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.