wctomb
, _wctomb_l
Convertit un caractère large en caractère multioctet correspondant. Des versions plus sécurisées de ces fonctions sont disponibles. Consultez wctomb_s
, _wctomb_s_l
.
Syntaxe
int wctomb(
char *mbchar,
wchar_t wchar
);
int _wctomb_l(
char *mbchar,
wchar_t wchar,
_locale_t locale
);
Paramètres
mbchar
Adresse d’un caractère multioctet.
wchar
Caractère large.
Valeur retournée
Si wctomb
convertit le caractère large en caractère multioctet, il retourne le nombre d’octets (qui n’est jamais supérieure à MB_CUR_MAX
) dans le caractère large. Si wchar
correspond au caractère Null à caractère large (L'\0'), wctomb
retourne 1. Si le pointeur mbchar
cible est NULL
, wctomb
retourne 0. Si la conversion n’est pas possible dans les paramètres régionaux actuels, wctomb
retourne -1 et errno
est définie sur EILSEQ
.
Notes
La fonction wctomb
convertit son argument wchar
en caractère multioctet correspondant et stocke le résultat au niveau de mbchar
. Vous pouvez appeler la fonction de n’importe quel endroit dans n’importe quel programme. La fonction wctomb
utilise les paramètres régionaux actuels pour tout comportement dépendant des paramètres régionaux ; la fonction _wctomb_l
est identique à wctomb
sauf qu'elle utilise les paramètres régionaux passés à la place. Pour plus d’informations, consultez Locale.
wctomb
valide ses paramètres. Si mbchar
a la valeur NULL
, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre. Si l’exécution est autorisée à se poursuivre, errno
est défini sur EINVAL
et la fonction retourne -1.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Spécifications
Routine | En-tête requis |
---|---|
wctomb |
<stdlib.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
Ce programme illustre le comportement de la fonction wctomb.
// crt_wctomb.cpp
// compile with: /W3
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
int i;
wchar_t wc = L'a';
char *pmb = (char *)malloc( MB_CUR_MAX );
printf( "Convert a wide character:\n" );
i = wctomb( pmb, wc ); // C4996
// Note: wctomb is deprecated; consider using wctomb_s
printf( " Characters converted: %u\n", i );
printf( " Multibyte character: %.1s\n\n", pmb );
}
Convert a wide character:
Characters converted: 1
Multibyte character: a
Voir aussi
Conversion de données
Paramètres régionaux
_mbclen
, , mblen
_mblen_l
mbstowcs
, _mbstowcs_l
mbtowc
, _mbtowc_l
wcstombs
, _wcstombs_l
WideCharToMultiByte