close
Пространства имён
Варианты
Действия

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

Материал из cppreference.com
 
 
Заголовочные файлы стандартной библиотеки
Языковая поддержка
Концепты
<concepts> (C++20)
Диагностика
<system_error> (C++11)

Управление памятью
<memory_resource> (C++17)  
Метапрограммирование
<type_traits> (C++11)
<ratio> (C++11)
Общие утилиты
<utility>
<tuple> (C++11)
<optional> (C++17)
<variant> (C++17)
<any> (C++17)
<expected> (C++23)
<bitset>

<charconv> (C++17)
<format> (C++20)
<bit> (C++20)

Строки
<cuchar> (C++11)

Контейнеры
<flat_set> (C++23)
<span> (C++20)
<mdspan> (C++23)

Итераторы
<iterator>
Диапазоны
<ranges> (C++20)
<generator> (C++23)
Алгоритмы
Числа
<cfenv> (C++11)
<complex>
<numbers> (C++20)

Время
<chrono> (C++11)
Локализация
<codecvt> (C++11/17*)
Ввод/вывод
<filesystem> (C++17)
<cstdio>
<cinttypes> (C++11)
<strstream> (C++98*)
Регулярные выражения
<regex> (C++11)
Поддержка конкуренции
<stop_token> (C++20)
<thread> (C++11)
<atomic> (C++11)
<stdatomic.h> (C++23)
<mutex> (C++11)
<shared_mutex> (C++14)
<condition_variable> (C++11)  
<semaphore> (C++20)
<latch> (C++20)
<barrier> (C++20)
<future> (C++11)

Совместимость с C
<cstdbool> (C++11/17/20*)  
<ccomplex> (C++11/17/20*)
<ctgmath> (C++11/17/20*)

<cstdalign> (C++11/17/20*)

<ciso646> (до C++20)

 

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

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

Макросы

определяемая реализацией константа для нулевого указателя
(макроконстанта) [править]
WEOF
несимвольное значение типа wint_t, используемое для обозначения ошибок
(макроконстанта)
WCHAR_MIN
наименьшее допустимое значение wchar_t
(макроконстанта)
WCHAR_MAX
наибольшее допустимое значение wchar_t
(макроконстанта)

Типы

информация о состоянии преобразования, необходимая для итерации многобайтовых символьных строк
(класс) [править]
беззнаковый целочисленный тип, возвращаемый оператором sizeof
(определение типа) [править]
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 =    /* смотри описание */; // автономная
  using mbstate_t = /* смотри описание */; // автономная
  using wint_t =    /* смотри описание */; // автономная

  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);                // автономная
  wchar_t* wcsncpy(wchar_t* s1, const wchar_t* s2, size_t n);     // автономная
  wchar_t* wmemcpy(wchar_t* s1, const wchar_t* s2, size_t n);     // автономная
  wchar_t* wmemmove(wchar_t* s1, const wchar_t* s2, size_t n);    // автономная
  wchar_t* wcscat(wchar_t* s1, const wchar_t* s2);                // автономная
  wchar_t* wcsncat(wchar_t* s1, const wchar_t* s2, size_t n);     // автономная
  int wcscmp(const wchar_t* s1, const wchar_t* s2);               // автономная
  int wcscoll(const wchar_t* s1, const wchar_t* s2);
  int wcsncmp(const wchar_t* s1, const wchar_t* s2, size_t n);    // автономная
  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);    // автономная
  const wchar_t* wcschr(const wchar_t* s, wchar_t c);             // автономная
  wchar_t* wcschr(wchar_t* s, wchar_t c);                         // автономная
  size_t wcscspn(const wchar_t* s1, const wchar_t* s2);           // автономная
  const wchar_t* wcspbrk(const wchar_t* s1, const wchar_t* s2);   // автономная
  wchar_t* wcspbrk(wchar_t* s1, const wchar_t* s2);               // автономная
  const wchar_t* wcsrchr(const wchar_t* s, wchar_t c);            // автономная
  wchar_t* wcsrchr(wchar_t* s, wchar_t c);                        // автономная
  size_t wcsspn(const wchar_t* s1, const wchar_t* s2);            // автономная
  const wchar_t* wcsstr(const wchar_t* s1, const wchar_t* s2);    // автономная
  wchar_t* wcsstr(wchar_t* s1, const wchar_t* s2);                // автономная
  wchar_t* wcstok(wchar_t* s1, const wchar_t* s2, wchar_t** ptr); // автономная
  const wchar_t* wmemchr(const wchar_t* s, wchar_t c, size_t n);  // автономная
  wchar_t* wmemchr(wchar_t* s, wchar_t c, size_t n);              // автономная
  size_t wcslen(const wchar_t* s);                                // автономная
  wchar_t* wmemset(wchar_t* s, wchar_t c, size_t n);              // автономная
  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      /* смотри описание */ // автономная
#define WCHAR_MAX /* смотри описание */ // автономная
#define WCHAR_MIN /* смотри описание */ // автономная
#define WEOF      /* смотри описание */ // автономная

Отчёты о дефектах

Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:

Номер Применён Поведение в стандарте Корректное поведение
LWG 345 C++98 std::tm не была определена в <cwchar> предоставлена