Partager via


codecvt::in

Convertit une représentation externe à partir d'une séquence de Bytes en une représentation interne d'une séquence de CharTypeS.

result in(
    StateType& _State,
    const Byte* _First1, 
    const Byte* _Last1, 
    const Byte*& _Next1,
    CharType* _First2,
    CharType* _Last2,
    CharType*& _Next2,
) const;

Paramètres

  • _State
    L'état de conversion qui est conservé entre les appels à la méthode.

  • _First1
    Pointeur vers le début de la séquence à convertir.

  • _Last1
    Pointeur vers la fin de la séquence à convertir.

  • _Next1
    Pointeur au delà de la fin de la séquence convertie au premier caractère non-converti.

  • _First2
    Pointeur vers le début de la séquence convertie.

  • _Last2
    Pointeur vers la fin de la séquence convertie.

  • _Next2
    Pointeur vers CharType qui vient après le dernier Chartype converti en premier caractère non modifié dans la séquence de destination.

Valeur de retour

Un résultat qui indique la réussite, échec ou échec partiel de l'opération. La fonction retourne:

  • codecvt_base::error si la séquence source est mal formée.

  • codecvt_base::noconv si la fonction n'effectue aucune conversion.

  • codecvt_base::ok si la conversion réussit.

  • codecvt_base::partial si la source est insuffisante ou si la destination n'est pas assez grande pour que la conversion réussisse.

Notes

_State doit représenter l'état de conversion initial au début d'une nouvelle séquence source. La fonction remplace la valeur stockée, si nécessaire, pour refléter l'état actuel d'une conversion réussie. Après une conversion partielle, _State doit être défini pour activer la conversion pour continuer lorsque les nouveaux caractères arrivent.

La fonction retourne do_inmembre (_State, _First1*, _Last1, _Next1, First2, _Llast2, _Next2*).

Exemple

// codecvt_in.cpp
// compile with: /EHsc
#define _INTL
#include <locale>
#include <iostream>
using namespace std;
#define LEN 90
int main( )   
{
   char* pszExt = "This is the string to be converted!";
   wchar_t pwszInt [LEN+1];
   memset(&pwszInt[0], 0, (sizeof(wchar_t))*(LEN+1));
   const char* pszNext;
   wchar_t* pwszNext;
   mbstate_t state = {0};
   locale loc("C");//English_Britain");//German_Germany
   int res = use_facet<codecvt<wchar_t, char, mbstate_t> >
     ( loc ).in( state,
          pszExt, &pszExt[strlen(pszExt)], pszNext,
          pwszInt, &pwszInt[strlen(pszExt)], pwszNext );
   pwszInt[strlen(pszExt)] = 0;
   wcout << ( (res!=codecvt_base::error) ? L"It worked! " : L"It didn't work! " )
   << L"The converted string is:\n ["
   << &pwszInt[0]
   << L"]" << endl;
   exit(-1);
}
       

Configuration requise

En-tête : <paramètres régionaux>

Espace de noms : std

Voir aussi

Référence

codecvt, classe