std::wctob (3) Linux Manual Page
std::wctob – std::wctob
Synopsis
Defined in header<cwchar>
int wctob(std::wint_t c);
Narrows a wide character c if its multibyte character equivalent in the initial shift state is a single byte.
This is typically possible for the characters from the ASCII character set, since most multibyte encodings (such as UTF-8) use single bytes to encode those characters.
Parameters
c – wide character to narrow
Return value
EOF if c does not represent a multibyte character with length 1 in initial shift state.
Otherwise, the single-byte representation of c as unsigned char converted to int
Example
// Run this code
#include <clocale>
#include <cwchar>
#include <iostream>
void try_narrowing(wchar_t c)
{
int cn = std::wctob(c);
if (cn != EOF)
std::cout << '\'' << c << "' narrowed to " << +cn << '\n';
else
std::cout << '\'' << c << "' could not be narrowed\n";
}
int main()
{
std::setlocale(LC_ALL, "th_TH.utf8");
std::cout << std::hex << std::showbase << "In Thai UTF-8 locale:\n";
try_narrowing(L'a');
try_narrowing(L'๛');
std::setlocale(LC_ALL, "th_TH.tis620");
std::cout << "In Thai TIS-620 locale:\n";
try_narrowing(L'a');
try_narrowing(L'๛');
}
Output:
See also
btowc (function)
narrow (public member function of std::basic_ios<CharT,Traits>)
narrow (public member function of std::ctype<CharT>)
