Spec-Zone.ru › C++

Заголовочный файл стандартной библиотеки <cwchar>

Изначально этот заголовочный файл входил в стандартную библиотеку C как <wchar.h>.

Этот заголовочный файл входит в библиотеки строк с завершающим нулём: широких и многобайтовых. Он также предоставляет некоторые функции ввода-вывода в стиле C и преобразование из даты в стиле C.

Макросы

NULL
определяемая реализацией константа нулевого указателя
(макроконстанта)
WEOF
значение типа std::wint_t, не являющееся символом и используемое для обозначения ошибок
(макроконстанта)
WCHAR_WIDTH
(C++26)
разрядность типа wchar_t
(макроконстанта)
WCHAR_MIN
минимальное значение типа wchar_t
(макроконстанта)
WCHAR_MAX
максимальное значение типа wchar_t
(макроконстанта)

Типы

mbstate_t
информация о состоянии преобразования, необходимая для перебора строк многобайтовых символов
(класс)
size_t
беззнаковый целочисленный тип, возвращаемый оператором sizeof
(псевдоним типа)
wint_t целочисленный тип, способный хранить любое допустимое значение широкого символа и как минимум ещё одно значение
tm
тип календарного времени
(класс)

Функции

Манипуляции со строками
wcscpy
копирует одну широкую строку в другую
(функция)
wcsncpy
копирует заданное количество широких символов из одной строки в другую
(функция)
wcscat
добавляет копию одной широкой строки к другой
(функция)
wcsncat
добавляет заданное количество широких символов из одной широкой строки к другой
(функция)
wcsxfrm
преобразует широкую строку так, чтобы wcscmp давала тот же результат, что и wcscoll
(функция)
Исследование строк
wcslen
возвращает длину широкой строки
(функция)
wcscmp
сравнивает две широкие строки
(функция)
wcsncmp
сравнивает заданное количество символов из двух широких строк
(функция)
wcscoll
сравнивает две широкие строки в соответствии с текущей локалью
(функция)
wcschr
находит первое вхождение широкого символа в широкой строке
(функция)
wcsrchr
находит последнее вхождение широкого символа в широкой строке
(функция)
wcsspn
возвращает длину максимального начального сегмента, состоящего
только из широких символов, найденных в другой широкой строке
(функция)
wcscspn
возвращает длину максимального начального сегмента, состоящего
только из широких символов, не найденных в другой широкой строке
(функция)
wcspbrk
находит первое положение любого широкого символа из одной широкой строки в другой широкой строке
(функция)
wcsstr
находит первое вхождение широкой строки в другую широкую строку
(функция)
wcstok
находит следующий токен в широкой строке
(функция)
Манипуляции с массивами широких символов
wmemcpy
копирует заданное количество широких символов между двумя неперекрывающимися массивами
(функция)
wmemmove
копирует заданное количество широких символов между двумя, возможно перекрывающимися, массивами
(функция)
wmemcmp
сравнивает заданное количество широких символов из двух массивов
(функция)
wmemchr
находит первое вхождение широкого символа в массиве широких символов
(функция)
wmemset
копирует заданный широкий символ в каждую позицию массива широких символов
(функция)
Преобразование многобайтовых/широких символов
mbsinit
проверяет, представляет ли объект std::mbstate_t начальное состояние сдвига
(функция)
btowc
преобразует узкий однобайтовый символ в широкий символ, если это возможно
(функция)
wctob
преобразует широкий символ в узкий однобайтовый символ, если это возможно
(функция)
mbrlen
возвращает количество байтов в следующем многобайтовом символе с учётом состояния
(функция)
mbrtowc
преобразует следующий многобайтовый символ в широкий символ с учётом состояния
(функция)
wcrtomb
преобразует широкий символ в его многобайтовое представление с учётом состояния
(функция)
mbsrtowcs
преобразует строку узких многобайтовых символов в широкую строку с учётом состояния
(функция)
wcsrtombs
преобразует широкую строку в строку узких многобайтовых символов с учётом состояния
(функция)
Ввод-вывод
fgetwcgetwc
получает широкий символ из файлового потока
(функция)
fgetws
получает широкую строку из файлового потока
(функция)
fputwcputwc
записывает широкий символ в файловый поток
(функция)
fputws
записывает широкую строку в файловый поток
(функция)
getwchar
считывает широкий символ из stdin
(функция)
putwchar
записывает широкий символ в stdout
(функция)
ungetwc
возвращает широкий символ в файловый поток
(функция)
fwide
переключает файловый поток между вводом-выводом широких символов и вводом-выводом узких символов
(функция)
wscanffwscanfswscanf
считывает форматированный ввод широких символов из stdin, файлового потока или буфера
(функция)
vwscanfvfwscanfvswscanf
(C++11)(C++11)(C++11)
считывает форматированный ввод широких символов из stdin, файлового потока
или буфера, используя список переменного числа аргументов
(функция)
wprintffwprintfswprintf
выводит форматированный текст из широких символов в stdout, файловый поток или буфер
(функция)
vwprintfvfwprintfvswprintf
выводит форматированный текст из широких символов в stdout, файловый поток
или буфер, используя список переменного числа аргументов
(функция)
Преобразование строк
wcsftime
преобразует объект std::tm в текстовое представление в виде широкой строки с заданным форматом
(функция)
wcstolwcstoll
преобразует широкую строку в целочисленное значение
(функция)
wcstoulwcstoull
преобразует широкую строку в беззнаковое целочисленное значение
(функция)
wcstofwcstodwcstold
преобразует широкую строку в число с плавающей точкой
(функция)

Примечания

  • NULL также определён в следующих заголовочных файлах:
    • <cstddef>
    • <cstring>
    • <ctime>
    • <clocale>
    • <cstdio>
  • std::size_t также определён в следующих заголовочных файлах:
    • <cstddef>
    • <ctime>
    • <cstdio>
  • std::wint_t также определён в следующих заголовочных файлах:
    • <cwctype>
  • std::tm также определён в следующих заголовочных файлах:
    • <ctime>

Обзор

#define __STDC_VERSION_WCHAR_H__ 202311L

namespace std {
  using size_t = /* implementation-defined */; // 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 /* implementation-defined */ // freestanding
#define WCHAR_MAX /* see description */   // freestanding
#define WCHAR_MIN /* see description */   // freestanding
#define WEOF /* see description */        // freestanding
#define WCHAR_WIDTH /* 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/cpp/header/cwchar

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API