Compartir a través de


codecvt::in

convierte una representación externa de una secuencia de s de bytea una representación interna de una secuencia de s de CharType.

result in(
    StateType& _State,
    const Byte* _First1, 
    const Byte* _Last1, 
    const Byte*& _Next1,
    CharType* _First2,
    CharType* _Last2,
    CharType*& _Next2,
) const;

Parámetros

  • _State
    El estado de conversión que se mantiene entre las llamadas a la función miembro.

  • _First1
    Puntero al principio de la secuencia que se va a convertir.

  • _Last1
    Puntero al final de la secuencia que se va a convertir.

  • _Next1
    Puntero más allá del final de la secuencia convierte el primer carácter no.

  • _First2
    Puntero al principio de la secuencia convertida.

  • _Last2
    Puntero al final de la secuencia convertida.

  • _Next2
    Puntero a CharType que viene después de Chartype convertido pasado al primer carácter inalterado en la secuencia de destino.

Valor devuelto

un retorno que indica el éxito o el error correcto, parcial de la operación.La función devuelve:

  • codecvt_base:: error si la secuencia de origen es incorrecta.

  • codecvt_base::noconv si la función no realiza ninguna conversión.

  • codecvt_base:: autorización si la conversión se realiza correctamente.

  • codecvt_base:: parcial si el origen es insuficiente o si el destino no es suficientemente grande para que la conversión se realiza correctamente.

Comentarios

_State debe representar el estado inicial de la conversión al principio de una nueva secuencia de origen.La función modificar su valor almacenado, según convenga, para reflejar el estado actual de una conversión correcta.Después de una conversión parcial, _State se debe permitir que la conversión reanudar cuando llegan los caracteres nuevos.

La función miembro devuelve do_in(_State, _First1*, _Last1, _Next1, First2, _Llast2, _Next2*).

Ejemplo

// 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

encabezado: <configuración regional>

espacio de nombres: std

Vea también

Referencia

codecvt Class