Standard library header <cwchar>
From cppreference.net
Этот заголовок изначально находился в стандартной библиотеке C как <wchar.h> .
Этот заголовок является частью библиотек wide и multibyte строк с нулевым завершением. Он также предоставляет некоторые функции C-style I/O и преобразование из C-style Date .
Содержание |
Макросы
|
определяемая реализацией константа нулевого указателя
(макроконстанта) |
|
|
WEOF
|
несимвольное значение типа
std::wint_t
используемое для указания ошибок
(макроконстанта) |
|
WCHAR_MIN
|
наименьшее допустимое значение
wchar_t
(макроконстанта) |
|
WCHAR_MAX
|
наибольшее допустимое значение
wchar_t
(макроконстанта) |
Типы
|
информация о состоянии преобразования, необходимая для итерации многобайтовых строк символов
(класс) |
|
|
беззнаковый целочисленный тип, возвращаемый оператором
sizeof
(typedef) |
|
wint_t
|
целочисленный тип, который может содержать любой допустимый широкий символ и как минимум одно дополнительное значение |
|
тип календарного времени
(класс) |
Функции
Манипуляции со строками |
|
|
копирует одну широкую строку в другую
(функция) |
|
|
копирует определённое количество широких символов из одной строки в другую
(функция) |
|
|
добавляет копию одной широкой строки к другой
(функция) |
|
|
добавляет определённое количество широких символов из одной широкой строки в другую
(функция) |
|
преобразует широкую строку так, чтобы
wcscmp
выдавал тот же результат, что и
wcscoll
(функция) |
|
Исследование строк |
|
|
возвращает длину широкой строки
(функция) |
|
|
сравнивает две широкие строки
(функция) |
|
|
сравнивает определённое количество символов из двух широких строк
(функция) |
|
|
сравнивает две широкие строки в соответствии с текущей локалью
(функция) |
|
|
находит первое вхождение широкого символа в широкой строке
(функция) |
|
|
находит последнее вхождение широкого символа в широкой строке
(функция) |
|
|
возвращает длину максимального начального сегмента, который состоит
только из широких символов, найденных в другой широкой строке (функция) |
|
|
возвращает длину максимального начального сегмента, который состоит
только из широких символов, не найденных в другой широкой строке (функция) |
|
|
находит первое вхождение любого широкого символа из одной широкой строки в другой широкой строке
(функция) |
|
|
находит первое вхождение широкой строки в другой широкой строке
(функция) |
|
|
находит следующий токен в широкой строке
(функция) |
|
Манипуляции с массивами широких символов |
|
|
копирует определённое количество широких символов между двумя неперекрывающимися массивами
(функция) |
|
|
копирует определённое количество широких символов между двумя, возможно перекрывающимися, массивами
(функция) |
|
|
сравнивает определённое количество широких символов из двух массивов
(функция) |
|
|
находит первое вхождение широкого символа в массиве широких символов
(функция) |
|
|
копирует заданный широкий символ в каждую позицию массива широких символов
(функция) |
|
Преобразование многобайтовых/широких символов |
|
|
проверяет, представляет ли объект
std::mbstate_t
начальное состояние сдвига
(функция) |
|
|
преобразует однобайтовый узкий символ в широкий символ, если возможно
(функция) |
|
|
преобразует широкий символ в однобайтовый узкий символ, если возможно
(функция) |
|
|
возвращает количество байтов в следующем многобайтовом символе с учетом состояния
(функция) |
|
|
преобразует следующий многобайтовый символ в широкий символ с учетом состояния
(функция) |
|
|
преобразует широкий символ в его многобайтовое представление с учётом состояния
(функция) |
|
|
преобразует узкую многобайтовую строку символов в широкую строку с учетом состояния
(функция) |
|
|
преобразует широкую строку в узкую многобайтовую строку символов с учетом состояния
(функция) |
|
Ввод/Вывод |
|
|
получает широкий символ из файлового потока
(функция) |
|
|
получает широкую строку из файлового потока
(функция) |
|
|
записывает широкий символ в файловый поток
(функция) |
|
|
записывает широкую строку в файловый поток
(функция) |
|
|
считывает широкий символ из
stdin
(функция) |
|
|
записывает широкий символ в
stdout
(функция) |
|
|
возвращает широкий символ обратно в файловый поток
(функция) |
|
|
переключает файловый поток между широкосимвольным вводом-выводом и узкосимвольным вводом-выводом
(функция) |
|
|
считывает форматированный широкосимвольный ввод из
stdin
, файлового потока или буфера
(функция) |
|
|
(C++11)
(C++11)
(C++11)
|
читает форматированный ввод широких символов из
stdin
, файлового потока
или буфера с использованием списка переменных аргументов (функция) |
|
выводит форматированные широкие символы в
stdout
, файловый поток или буфер
(функция) |
|
|
выводит форматированные широкосимвольные данные в
stdout
, файловый поток
или буфер, используя список переменных аргументов (функция) |
|
Преобразования строк |
|
|
преобразует объект
std::tm
в пользовательское широкосимвольное строковое представление
(функция) |
|
|
преобразует широкую строку в целочисленное значение
(функция) |
|
|
преобразует широкую строку в целое число без знака
(функция) |
|
|
преобразует широкую строку в значение с плавающей запятой
(функция) |
|
Примечания
- NULL также определён в следующих заголовочных файлах:
- std::size_t также определён в следующих заголовочных файлах:
-
std::wint_tтакже определён в следующих заголовочных файлах: - std::tm также определён в следующих заголовочных файлах:
Синопсис
namespace std { using size_t = /* см. описание */; // freestanding using mbstate_t = /* см. описание */; // freestanding using wint_t = /* см. описание */; // freestanding struct tm; int fwprintf(FILE* stream, const wchar_t* format, ...); int fwscanf(FILE* stream, const wchar_t* format, ...); int swprintf(wchar_t* s, size_t n, const wchar_t* format, ...); int swscanf(const wchar_t* s, const wchar_t* format, ...); int vfwprintf(FILE* stream, const wchar_t* format, va_list arg); int vfwscanf(FILE* stream, const wchar_t* format, va_list arg); int vswprintf(wchar_t* s, size_t n, const wchar_t* format, va_list arg); int vswscanf(const wchar_t* s, const wchar_t* format, va_list arg); int vwprintf(const wchar_t* format, va_list arg); int vwscanf(const wchar_t* format, va_list arg); int wprintf(const wchar_t* format, ...); int wscanf(const wchar_t* format, ...); wint_t fgetwc(FILE* stream); wchar_t* fgetws(wchar_t* s, int n, FILE* stream); wint_t fputwc(wchar_t c, FILE* stream); int fputws(const wchar_t* s, FILE* stream); int fwide(FILE* stream, int mode); wint_t getwc(FILE* stream); wint_t getwchar(); wint_t putwc(wchar_t c, FILE* stream); wint_t putwchar(wchar_t c); wint_t ungetwc(wint_t c, FILE* stream); double wcstod(const wchar_t* nptr, wchar_t** endptr); float wcstof(const wchar_t* nptr, wchar_t** endptr); long double wcstold(const wchar_t* nptr, wchar_t** endptr); long int wcstol(const wchar_t* nptr, wchar_t** endptr, int base); long long int wcstoll(const wchar_t* nptr, wchar_t** endptr, int base); unsigned long int wcstoul(const wchar_t* nptr, wchar_t** endptr, int base); unsigned long long int wcstoull(const wchar_t* nptr, wchar_t** endptr, int base); wchar_t* wcscpy(wchar_t* s1, const wchar_t* s2); // freestanding wchar_t* wcsncpy(wchar_t* s1, const wchar_t* s2, size_t n); // freestanding wchar_t* wmemcpy(wchar_t* s1, const wchar_t* s2, size_t n); // freestanding wchar_t* wmemmove(wchar_t* s1, const wchar_t* s2, size_t n); // freestanding wchar_t* wcscat(wchar_t* s1, const wchar_t* s2); // freestanding wchar_t* wcsncat(wchar_t* s1, const wchar_t* s2, size_t n); // freestanding int wcscmp(const wchar_t* s1, const wchar_t* s2); // freestanding int wcscoll(const wchar_t* s1, const wchar_t* s2); int wcsncmp(const wchar_t* s1, const wchar_t* s2, size_t n); // freestanding size_t wcsxfrm(wchar_t* s1, const wchar_t* s2, size_t n); int wmemcmp(const wchar_t* s1, const wchar_t* s2, size_t n); // freestanding const wchar_t* wcschr(const wchar_t* s, wchar_t c); // freestanding wchar_t* wcschr(wchar_t* s, wchar_t c); // freestanding size_t wcscspn(const wchar_t* s1, const wchar_t* s2); // freestanding const wchar_t* wcspbrk(const wchar_t* s1, const wchar_t* s2); // freestanding wchar_t* wcspbrk(wchar_t* s1, const wchar_t* s2); // freestanding const wchar_t* wcsrchr(const wchar_t* s, wchar_t c); // freestanding wchar_t* wcsrchr(wchar_t* s, wchar_t c); // freestanding size_t wcsspn(const wchar_t* s1, const wchar_t* s2); // freestanding const wchar_t* wcsstr(const wchar_t* s1, const wchar_t* s2); // freestanding wchar_t* wcsstr(wchar_t* s1, const wchar_t* s2); // freestanding wchar_t* wcstok(wchar_t* s1, const wchar_t* s2, wchar_t** ptr); // freestanding const wchar_t* wmemchr(const wchar_t* s, wchar_t c, size_t n); // freestanding wchar_t* wmemchr(wchar_t* s, wchar_t c, size_t n); // freestanding size_t wcslen(const wchar_t* s); // freestanding wchar_t* wmemset(wchar_t* s, wchar_t c, size_t n); // freestanding size_t wcsftime(wchar_t* s, size_t maxsize, const wchar_t* format, const tm* timeptr); wint_t btowc(int c); int wctob(wint_t c); // функции преобразования многобайтовых/широких строк и символов int mbsinit(const mbstate_t* ps); size_t mbrlen(const char* s, size_t n, mbstate_t* ps); size_t mbrtowc(wchar_t* pwc, const char* s, size_t n, mbstate_t* ps); size_t wcrtomb(char* s, wchar_t wc, mbstate_t* ps); size_t mbsrtowcs(wchar_t* dst, const char** src, size_t len, mbstate_t* ps); size_t wcsrtombs(char* dst, const wchar_t** src, size_t len, mbstate_t* ps); } #define NULL /* см. описание */ // freestanding #define WCHAR_MAX /* см. описание */ // freestanding #define WCHAR_MIN /* см. описание */ // freestanding #define WEOF /* см. описание */ // freestanding
Отчеты о дефектах
Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применяется к | Поведение в опубликованной версии | Корректное поведение |
|---|---|---|---|
| LWG 345 | C++98 |
std::tm
не предоставлялся в
<cwchar>
|
предоставляется |