Partager via


codecvt::in

Convertit une représentation externe d'une séquence de Octets à 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
    Le rapport de conversion qui est mis à jour entre les appels à la fonction membre.

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

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

  • _Next1
    Pointeur au delà de la fin de la séquence convertir au premier caractère inconverti.

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

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

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

Valeur de retour

Un retour qui indique le succès, succès ou l'échec partiel de l'exécution.Les retours de fonction :

  • codecvt_base::error si la séquence source est incorrecte.

  • codecvt_base::noconv si la fonction n'exécute 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 suffisamment grande pour la conversion réussisse.

Notes

_State doit représenter le rapport de conversion initiale au début d'une séquence source.La fonction modifie sa valeur enregistré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 afin de permettre à la conversion pour continuer lorsque de nouveaux caractères arrivent.

La fonction membre retourne do_in(_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 : <locale>

l'espace de noms : DST

Voir aussi

Référence

codecvt Class