codecvt::in
Converte uma representação externa de uma seqüência de Bytes a uma representação interna de uma seqüência de CharTypeS.
result in(
StateType& _State,
const Byte* _First1,
const Byte* _Last1,
const Byte*& _Next1,
CharType* _First2,
CharType* _Last2,
CharType*& _Next2,
) const;
Parâmetros
_State
O estado de conversão que é mantido entre chamadas para a função de membro._First1
Ponteiro para o início da seqüência a ser convertido._Last1
Ponteiro ao final da seqüência a ser convertido._Next1
Além de ponteiro final da seqüência convertida para o primeiro caractere unconverted._First2
Ponteiro para o início da seqüência convertida._Last2
Ponteiro ao final da seqüência convertida._Next2
Ponteiro para CharType que vem depois de Chartype último convertido para o primeiro caractere inalterado na seqüência de destino.
Valor de retorno
Um retorno que indicam sucesso ou falha com êxito, parcial da operação.Retorna a função:
codecvt_base::error se a seqüência de origem é mal formado.
codecvt_base::noconv se a função não realiza nenhuma conversão.
codecvt_base::ok se a conversão êxito.
codecvt_base::partial se a fonte insuficientes ou se o destino não é grande o suficiente para que a conversão foi bem-sucedida.
Comentários
_State deve representar o estado inicial de conversão no início de uma nova seqüência de origem.A função altera o valor armazenado, conforme necessário, para refletir o estado atual de uma conversão bem-sucedida.Após uma conversão parcial, _State deve ser definido para permitir que a conversão continue quando novos caracteres chegam.
a função de membro retorna do_in(_State, _First1*, _Last1, _Next1, First2, _Llast2, _Next2*).
Exemplo
// 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);
}
Requisitos
Cabeçalho: <locale>
namespace: STD