Namespaces
Variants

Standard library header <cwchar>

From cppreference.net
Standard library headers

Этот заголовок изначально находился в стандартной библиотеке 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 в пользовательское широкосимвольное строковое представление
(функция)
преобразует широкую строку в целочисленное значение
(функция)
преобразует широкую строку в целое число без знака
(функция)
преобразует широкую строку в значение с плавающей запятой
(функция)

Примечания

Синопсис

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> предоставляется