codecvt::in

Konvertiert eine externe Darstellung einer Sequenz von Byte s zu einer internen Darstellung einer Sequenz von CharType S.

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

Parameter

  • _State
    Der Konvertierungszustand, der von einem Aufruf der Memberfunktion beibehalten wird.

  • _First1
    Zeiger auf den Anfang der zu konvertierende Sequenz.

  • _Last1
    Zeiger auf das Ende der zu konvertierende Sequenz.

  • _Next1
    Zeiger über dem Ende der konvertierten Sequenz zum ersten ohne Zeichen sind.

  • _First2
    Zeiger auf den Anfang der konvertierten Sequenz.

  • _Last2
    Zeiger auf das Ende der konvertierten Sequenz.

  • _Next2
    Zeiger auf CharType, nach der letzten konvertierten Chartype zum ersten unveränderten Zeichen in der Zielsequenz stammt.

Rückgabewert

Durch Rückgabe, die den Erfolg, partiellen Erfolg oder Fehler des Vorgangs angibt.Die Funktion:

  • codecvt_base::error, wenn die Quellsequenz nicht ordnungsgemäß formatiert ist.

  • codecvt_base::noconv, wenn die Funktion keine Konvertierung ausgeführt wird.

  • codecvt_base::ok, wenn die Konvertierung folgt.

  • codecvt_base::partial, wenn die Quelle nicht ausreicht, oder wenn das Ziel nicht groß genug ist, damit die Konvertierung folgt.

Hinweise

_State muss den ursprünglichen Konvertierungszustand am Anfang einer neuen Quellsequenz darstellen.Die Funktion ändert den gespeicherten Wert nach Bedarf um den aktuellen Zustand erfolgreicher Konvertierung wiederzugeben.Nach einer partiellen Konvertierung muss _State festgelegt werden, um der Konvertierung zu ermöglichen, fortgesetzt, wenn neue Zeichen erhält.

Die Memberfunktion gibt do_in zurück (_State, _First1*, _Last1, _Next1, First2, _Llast2, _Next2*).

Beispiel

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

Anforderungen

Header: <locale>

Namespace: std

Siehe auch

Referenz

codecvt Class