Заголовочный файл wchar_t предоставляет средства для обработки обоих представлений широких символов. В нем определены типы, перечисленные в табл. B.V,46 (некоторые из этих типов также определены в других заголовочных файлах).
Таблица 6.V.46. Типы, определенные в wchar.h

Библиотека содержит функции ввода-вывода, являющиеся аналогами стандартных функций ввода-вывода, которые определены в stdio.h. В тех случаях, когда стандартная функция ввода-вывода возвращает EOF, соответствующая функция для широких символов возвращает WEOF. Эти функции перечислены в табл. B.V.48.
Справочные материалы 889
Таблица 6.V.48. Функции ввода-вывода для работы с широкими символами

Существует одна функция ввода-вывода с широкими символами, не имеющая аналога в стандартной библиотеке ввода-вывода:
int fwide(FILE *stream, int mode);
Если аргумент mode имеет положительное значение, то сначала эта функция пытается трактовать поток, представленный параметром stream, как ориентированный на широкие символы, а если отрицательное — то как ориентированный на байты. Если же значение mode равно нулю, функция не пытается изменить ориентацию потока. Попытка изменения ориентации предпринимается, только если она не была назначена потоку изначально. Во всех случаях функция возвращает положительное значение, если поток ориентирован на широкие символы, отрицательное значение, если поток ориентирован на байты, и ноль, если ориентация потока не установлена.
Заголовочный файл wchar.h предлагает несколько функций для манипуляции и преобразования строк, которые моделируют такие же функции из string.h. В общем случае фрагмент str в идентификаторах из string.h заменяется фрагментом wcs, так что wcstod() — это версия функции strtod() для широких символов. Такие функции пепечислены r тябл. K.V.49.
890 Приложение Б
Таблица 6.V.49. Строковые утилиты для широких символов

В этом заголовочном файле также объявлена функция, моделирующая strftime() из time.h:
size_t wcsftime(wchar_t * restrict s, size_t maxsize, const wchar_t * restrict format, const struct tm * restrict timeptr);
И, наконец, здесь объявлено несколько функций для преобразования строк с широкими символами в строки с многобайтными символами и наоборот (табл. B.V.50).


Справочные материалы 893
Утилиты классификации и отображения широких символов: wctype.h (С99)
Заголовочный файл wctype.h предлагает аналоги символьных функций из ctype.h наряду с несколькими дополнительными функциями. Кроме того, в нем определены три типа и макрос, как показано в табл. B.V.51.
Таблица 6.V.51. Типы и макрос, определенные в wctype.h

Классификации символов в wctype.h возвращают true (ненулевое значение), если аргумент широкого символа удовлетворяет условиям, описанным функцией. В общем случае функция широких символов возвращает true, если соответствующая функция ctype.h возвращает true для однобайтного символа, который соответствует широкому. Эти функции перечислены в табл. B.V.52.

Таблица 6.V.52. Функции классификации широких символов
894 Приложение Б
Библиотека также содержит две классифицирующие функции, которые называются расширяемыми, поскольку для классификации символов они используют значение LC CTYPE текущей локальной установки. Эти функции перечислены в табл. B.V.53.
Таблица 6.V.53. расширяемые функции классификации широких символов

Допустимые аргументы для wctype() состоят из имен функций классификации широких символов, из которых исключен префикс isw и которые выражены в виде строк. Например, wctype ("alpha") характеризует класс символов, проверяемых функцией iswalpha(). Таким образом, вызов
Читать дальше