Spec-Zone.ru › C

fgetwc, getwc

Объявлено в заголовочном файле <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 <errno.h>
#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
#include <wchar.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);
}

Возможный вывод:

кот

Ссылки

  • Стандарт C23 (ISO/IEC 9899:2024):
    • 7.29.3.1 Функция fgetwc (стр.: TBD)
    • 7.29.3.6 Функция getwc (стр.: TBD)
  • Стандарт 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/c/io/fgetwc

Spec-Zone.ru

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