fgetwc, getwc
С ru.cppreference.net
| Определено в заголовке <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 <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.29.3.1 Функция fgetwc (стр.: 367)
- 7.29.3.6 Функция getwc (стр.: 369)
См. также
| получает символ из файлового потока (функция) | |
(C95) |
получает широкую строку из файлового потока (функция) |
(C95) |
записывает широкий символ в файловый поток (функция) |
(C95) |
возвращает широкий символ обратно в файловый поток (функция) |
Документация C++ для fgetwc
| |