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