Namespaces
Variants

fgetwc, getwc

From cppreference.net
< c ‎ | io
Определено в заголовке <wchar.h>
wint_t fgetwc ( FILE * stream ) ;
(начиная с C95)
wint_t getwc ( FILE * stream ) ;
(начиная с C95)

Считывает следующий широкий символ из заданного входного потока. getwc ( ) может быть реализована как макрос и может вычислять stream более одного раза.

Содержание

Параметры

stream - для чтения широкого символа из

Возвращаемое значение

Следующий широкий символ из потока или WEOF при ошибке.

Если сбой был вызван условием конца файла, дополнительно устанавливает индикатор eof (см. feof() ) на stream . Если сбой был вызван другой ошибкой, устанавливает индикатор error (см. ferror() ) на stream .

Если произошла ошибка кодировки, дополнительно устанавливает errno в значение EILSEQ .

Пример

#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");
        return EXIT_FAILURE;
    }
    fputs("кошка\n", fp);
    fclose(fp);
    fp = fopen("fgetwc.dat", "r");
    if(!fp) {
        perror("Can't open file for reading");
        return EXIT_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.");
        else
            puts("I/O error when reading");
    } else if (feof(fp))
        puts("End of file reached successfully");
    fclose(fp);
}

Вывод:

кошка

Ссылки

  • Стандарт C17 (ISO/IEC 9899:2018):
  • 7.29.3.1 Функция fgetwc (стр.: 307-308)
  • 7.29.3.6 Функция getwc (стр.: 309)
  • Стандарт C11 (ISO/IEC 9899:2011):
  • 7.29.3.1 Функция fgetwc (стр: 421-422)
  • 7.29.3.6 Функция getwc (стр: 424)
  • Стандарт C99 (ISO/IEC 9899:1999):
  • 7.24.3.1 Функция fgetwc (стр. 367)
  • 7.24.3.6 Функция getwc (стр. 369)

Смотрите также

получает символ из файлового потока
(функция)
(C95)
получает широкую строку из файлового потока
(функция)
записывает широкий символ в файловый поток
(функция)
(C95)
возвращает широкий символ обратно в файловый поток
(функция)
C++ documentation для fgetwc