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)
См. также
| получает символ из потока файла (функция) |
|
|
(C95) |
получает широкую строку из потока файла (функция) |
|
(C95) |
записывает широкий символ в поток файла (функция) |
|
(C95) |
возвращает широкий символ в поток файла (функция) |
Документация C++ для fgetwc |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/io/fgetwc