fgetwc, getwc
From cppreference.com
Defined in header <wchar.h> | ||
wint_t fgetwc(FILE*stream ); | (since C95) | |
wint_t getwc(FILE*stream ); | (since C95) | |
Reads the next wide character from the given input stream. getwc() may be implemented as a macro and may evaluate stream
more than once.
Contents |
[edit]Parameters
stream | - | to read the wide character from |
[edit]Return value
The next wide character from the stream or WEOF on failure.
If the failure has been caused by end-of-file condition, additionally sets the eof indicator (see feof()) on stream
. If the failure has been caused by some other error, sets the error indicator (see ferror()) on stream
.
If an encoding error occurred, additionally sets errno to EILSEQ
.
[edit]Example
Run this code
#include <stdio.h>#include <stdlib.h>#include <wchar.h>#include <errno.h>#include <locale.h> int main(void){setlocale(LC_ALL, "en_US.utf8");FILE*fp =fopen("fgetwc.dat", "w");if(!fp){perror("Can't open file for writing");returnEXIT_FAILURE;}fputs("кошка\n", fp);fclose(fp); fp =fopen("fgetwc.dat", "r");if(!fp){perror("Can't open file for reading");returnEXIT_FAILURE;} wint_t wc;errno=0;while((wc = fgetwc(fp))!= WEOF)putwchar(wc); if(ferror(fp)){if(errno==EILSEQ)puts("Character encoding error while reading.");elseputs("I/O error when reading");}elseif(feof(fp))puts("End of file reached successfully"); fclose(fp);}
Output:
кошка
[edit]References
- C17 standard (ISO/IEC 9899:2018):
- 7.29.3.1 The fgetwc function (p: 307-308)
- 7.29.3.6 The getwc function (p: 309)
- C11 standard (ISO/IEC 9899:2011):
- 7.29.3.1 The fgetwc function (p: 421-422)
- 7.29.3.6 The getwc function (p: 424)
- C99 standard (ISO/IEC 9899:1999):
- 7.24.3.1 The fgetwc function (p: 367)
- 7.24.3.6 The getwc function (p: 369)
[edit]See also
gets a character from a file stream (function) | |
(C95) | gets a wide string from a file stream (function) |
(C95) | writes a wide character to a file stream (function) |
(C95) | puts a wide character back into a file stream (function) |
C++ documentation for fgetwc |