La fonction wctomb () en C ++ convertit un caractère large en caractère multi-octets.
La fonction wctomb () est définie dans le fichier d'en-tête.
prototype wctomb ()
int wctomb (char * pmb, wchar_t wc);
La fonction wctomb () prend deux arguments et renvoie une valeur entière. Cette fonction convertit le caractère large représenté par wc en son équivalent multi-octets et est stocké à l'emplacement mémoire pointé par pmb. Le nombre maximum de caractères pouvant être stockés est MB_CUR_MAX .
Si wc est le caractère nul, l'octet nul est écrit dans pmb.
Si pmb est un pointeur nul, un appel à wctomb () réinitialisera l'état de conversion global et déterminera si des séquences de décalage sont utilisées.
Paramètres wctomb ()
- pmb: pointeur vers le caractère multi-octets résultant
- wc: caractère large converti en caractère multi-octets
wctomb () Valeur de retour
Si pmb n'est pas un pointeur nul, wctomb () renvoie:
- le nombre d'octets contenus dans la représentation multi-octets de wc.
- -1 si wc n'est pas un caractère valide.
Si pmb est un pointeur nul, réinitialise son état de conversion interne pour représenter l'état de décalage initial et retourne:
- 0 si le codage multi-octets actuel n'est pas dépendant de l'état (n'utilise pas de séquences de décalage)
- une valeur non nulle si le codage multi-octets actuel dépend de l'état (utilise des séquences de décalage).
Exemple: Comment fonctionne la fonction wctomb ()?
#include #include using namespace std; int main() ( wchar_t wc = L'x'; char *pmb1 = (char*)malloc(sizeof(char)); char *pmb2 = NULL; int ret_val; cout << "When pmb is not null" << endl; ret_val = wctomb(pmb1, wc); cout << "Return Value = " << ret_val << endl; wcout << "Multibyte Character: " << pmb1 << endl << endl; cout << "When pmb is null" << endl; ret_val = wctomb(pmb2, wc); cout << "Return Value = " << ret_val << endl; wcout << "Multibyte Character: " << pmb2; return(0); )
Lorsque vous exécutez le programme, une sortie possible sera:
Lorsque pmb n'est pas nul Valeur de retour = 1 caractère multi-octets: x↨R Lorsque pmb est nul Valeur de retour = 0 caractère multi-octets: