Помните, что в C ++ каноническим способом представления байта является char
, который является целочисленным типом. 1
Стандарт C ++ предоставляет Библиотека ввода / вывода , которая обеспечивает основные потоки ввода и вывода.Эти базовые потоки являются шаблонами, а тип «персонажа», с которым они работают, выбирается с помощью параметра шаблона.Как правило, они используются в ароматах char
и «широкий символ» wchar_t
. Существуют другие типы символов , такие как char8_t
и char32_t
, но их использование немного необычно.
Например, ввод и вывод файла в C ++ может быть выполнен с помощью basic_fstream
объект, который принимает в качестве параметра шаблона некоторый тип CharT
.Для удобства у нас есть два псевдонима: fstream
- сокращение для basic_fstream<char>
и wfstream
- сокращение для basic_fstream<wchar_t>
.Этот паттерн также наблюдается в других потоках, таких как строковые потоки и стандартные потоки ввода и вывода.
На первый взгляд может показаться, что "широкий символ" wchar_t
отлично подойдет для работы со строками Unicode.Не обманывайтесь.Поддержка Unicode в C ++ серьезно отсутствует .
1.По общему признанию, теперь есть стандарт std::byte
, но его использование довольно ограничено.Это ни целочисленный тип, ни тип символов.
Примечание: Не смешивайте cout
и wcout
в одной программе. Вот почему .