std:: wctob
|
Défini dans l'en-tête
<cwchar>
|
||
|
int
wctob
(
std::
wint_t
c
)
;
|
||
Rétrécit un caractère large c si son équivalent en caractère multioctet dans l'état de décalage initial est un octet unique.
Cela est généralement possible pour les caractères de l'ensemble de caractères ASCII, car la plupart des encodages multioctets (tels que UTF-8) utilisent des octets uniques pour encoder ces caractères.
Table des matières |
Paramètres
| c | - | caractère large vers caractère étroit |
Valeur de retour
EOF si c ne représente pas un caractère multi-octets de longueur 1 dans l'état de décalage initial.
Sinon, la représentation sur un octet de c en tant que unsigned char convertie en int .
Exemple
#include <clocale> #include <cwchar> #include <iostream> void try_narrowing(wchar_t c) { int cn = std::wctob(c); if (cn != EOF) std::cout << '\'' << int(c) << "' narrowed to " << +cn << '\n'; else std::cout << '\'' << int(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'๛'); }
Sortie :
In Thai UTF-8 locale: '0x61' narrowed to 0x61 '0xe5b' could not be narrowed In Thai TIS-620 locale: '0x61' narrowed to 0x61 '0xe5b' narrowed to 0xfb
Voir aussi
|
élargit un caractère étroit d'un octet en caractère large, si possible
(fonction) |
|
|
rétrécit les caractères
(fonction membre publique de
std::basic_ios<CharT,Traits>
)
|
|
appelle
do_narrow
(fonction membre publique de
std::ctype<CharT>
)
|
|
|
documentation C
pour
wctob
|
|