Condividi tramite


codecvt::in

Converte una rappresentazione esterna di una sequenza di oggetti Byteuna rappresentazione interna di una sequenza charS.

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

Parametri

  • _State
    Lo stato di conversione che viene gestito tra le chiamate alla funzione membro.

  • _First1
    Puntatore all'inizio della sequenza da convertire.

  • _Last1
    Puntatore alla fine della sequenza da convertire.

  • _Next1
    Puntatore oltre la fine della sequenza convertita al primo carattere non convertito.

  • _First2
    Puntatore all'inizio della sequenza convertita.

  • _Last2
    Puntatore alla fine della sequenza convertita.

  • _Next2
    Puntatore a char che non dopo l'ultimo Chartype convertito nel primo carattere invariato nella sequenza di destinazione.

Valore restituito

Un valore che indica l'esito positivo, l'esito positivo o negativo parziale dell'operazione.Funzione restituisce:

  • codecvt_base::error se la sequenza di origine è corretto.

  • codecvt_base::noconv se la funzione non esegue la conversione.

  • codecvt_base::ok se la conversione ha esito positivo.

  • codecvt_base::partial se il database di origine è insufficiente o se la destinazione non è sufficiente per la conversione ha esito positivo.

Note

_State deve rappresentare lo stato iniziale di conversione nella parte superiore della nuova sequenza di origine.La funzione modifica il valore memorizzato, in base alle necessità, in base allo stato corrente della conversione.Dopo una conversione parziale, _State deve essere impostato in modo da consentire la conversione per riprendere quando nuovi caratteri arrivo.

La funzione membro restituisce do_in(_State, _First1*, _Last1, _Next1, First2, _Llast2, _Next2*).

Esempio

// 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);
}
  
  

Requisiti

intestazione: <locale>

Spazio dei nomi: deviazione standard

Vedere anche

Riferimenti

codecvt Class