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