Compartilhar via


codecvt::in

Converte uma representação externo de uma sequência de Bytes em uma representação interna de uma sequê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 da conversão que é mantido entre chamadas para a função de membro.

  • _First1
    Ponteiro para o início da sequência a ser convertida.

  • _Last1
    Ponteiro para o término da sequência a ser convertida.

  • _Next1
    Além do ponteiro de sequência convertida para o primeiro caractere unconverted.

  • _First2
    Ponteiro para o início da sequência convertida.

  • _Last2
    Ponteiro para o término da sequência convertida.

  • _Next2
    Ponteiro para CharType que aparece após Chartype convertido último o primeiro caractere inalterado na sequência de destino.

Valor de retorno

Um retorno que indica o êxito ou a falha com êxito, parcial da operação. A função retornará:

  • codecvt_base::error se a sequência de origem é errado formado.

  • codecvt_base::noconv se a função não executa nenhuma conversão.

  • codecvt_base::ok se a conversão for bem-sucedida.

  • codecvt_base::partial se a origem for insuficiente ou se o destino não seja grande o suficiente para que a conversão tenha êxito.

Comentários

_State deve representar o estado inicial de conversão no início de uma nova sequência de origem. A função altera seu 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 continuar 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

localidade <deCabeçalho: >

Namespace: std

Consulte também

Referência

Classe codecvt