codecvt::in
Konwertuje zewnętrznej reprezentacji sekwencji bajts, aby wewnętrzną reprezentację sekwencji CharTypes.
result in(
StateType& _State,
const Byte* _First1,
const Byte* _Last1,
const Byte*& _Next1,
CharType* _First2,
CharType* _Last2,
CharType*& _Next2,
) const;
Parametry
_State
Stan konwersji obsługiwany między wywołaniami funkcji składowej._First1
Wskaźnik na początku sekwencji do konwersji._Last1
Wskaźnik na końcu sekwencji do konwersji._Next1
Wskaźnik poza koniec sekwencji przekonwertowane do pierwszego znaku nieprzekonwertowane._First2
Wskaźnik na początku sekwencji przekonwertowane._Last2
Wskaźnik na końcu konwertowanego sekwencji._Next2
Wskaźnik do CharType który przychodzi po konwersji ostatni Chartype do pierwszego znaku niezmienionym w sekwencji przeznaczenia.
Wartość zwracana
Zwrotu, który wskazuje sukces, częściowy sukces lub Niepowodzenie operacji.Funkcja zwraca:
codecvt_base::Error Jeśli sekwencja źródła jest źle utworzone.
codecvt_base::noconvJeśli funkcja wykonuje bez konwersji.
codecvt_base::OK Jeśli konwersja powiedzie się.
codecvt_base::Partial Jeśli źródło jest niewystarczająca lub jeśli obiekt docelowy nie jest wystarczająco duży, aby konwersja powiodła się.
Uwagi
_Statemusi reprezentować stan początkowy konwersji na początku nowej sekwencji źródła.Funkcja zmienia jego wartość przechowywana, stosownie do potrzeb, aby odzwierciedlał bieżącego stanu udanej konwersji.Po konwersji częściowe _State należy ustawić tak, aby zezwolić na konwersję wznowić, gdy przychodzą nowe znaki.
Zwraca element członkowski funkcja do_in(_State, _First1, _Last1, _Next1, First2, _Llast2, _Next2).
Przykład
// 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);
}
Wymagania
Nagłówek:<ustawień regionalnych>
Przestrzeń nazw: std