Spec-Zone.ru › C

fgetwc, getwc

Defined in header <wchar.h>
wint_t fgetwc( FILE *stream );
(since C95)
wint_t getwc( FILE *stream );
(since 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)

См. также

fgetcgetc
получает символ из потока файла
(функция)
fgetws
(C95)
получает широкую строку из потока файла
(функция)
fputwcputwc
(C95)
записывает широкий символ в поток файла
(функция)
ungetwc
(C95)
возвращает широкий символ в поток файла
(функция)
Документация C++ для fgetwc

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/io/fgetwc

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API