codecvt::in
Konvertiert eine externe Darstellung einer Sequenz von Bytes 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, zwischen Aufrufen zur Memberfunktion beibehalten wird._First1
Zeiger zum Anfang der zu konvertierende Sequenz._Last1
Zeiger zum Ende der zu konvertierende Sequenz._Next1
Zeiger zum Ende der konvertierten Sequenz nicht konvertierten zum ersten Zeichen sind._First2
Zeiger zum Anfang der konvertierten Sequenz._Last2
Zeiger zum Ende der konvertierten Sequenz._Next2
Zeiger auf CharType, der nach letzten konvertierten Chartype zur ersten unveränderten Zeichen in der Zielsequenz stammt.
Rückgabewert
Durch Rückgabe, die den Erfolg, partiellem Erfolg oder Fehlschlagen 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 erfolgreich ausgeführt.
codecvt_base::partial, wenn die Quelle nicht ausreicht, oder wenn das Ziel nicht groß genug ist, sodass die Konvertierung erfolgreich ausgeführt.
Hinweise
_State muss die ursprünglichen Konvertierungszustand zu Beginn einer neuer Quellsequenz darstellen. Die Funktion ändert den gespeicherten Wert ggf. um den aktuellen Zustand einer erfolgreichen Konvertierung wiederzugeben. Nach einer partiellen Konvertierung muss _State festgelegt werden, um die Konvertierung zu ermöglichen, um fortzusetzen, 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
Gebietsschema Header: <>
Namespace: std