Стандартная библиотека заголовочный файл <cwchar>
Этот заголовочный файл изначально был в стандартной библиотеке C как <wchar.h>.
Этот заголовочный файл является частью библиотек нуль-терминированных широких и многобайтовых строк. Он также предоставляет некоторые функции ввода-вывода в стиле C и преобразование из даты в стиле C.
Макросы
| константа указателя на ноль, определяемая реализацией (макроконстанта) |
|
| 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 = /* see description */; // freestanding
using mbstate_t = /* see description */; // freestanding
using wint_t = /* see description */; // 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);
// multibyte / wide string and character conversion functions
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 /* see description */ // freestanding
#define WCHAR_MAX /* see description */ // freestanding
#define WCHAR_MIN /* see description */ // freestanding
#define WEOF /* see description */ // freestandingОтчеты об ошибках
Следующие отчеты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применимо к | Поведение, опубликованное в исходном виде | Корректное поведение |
|---|---|---|---|
| LWG 345 | C++98 |
std::tm не был предоставлен в <cwchar> | предоставлено |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/header/cwchar