codecvt::in
Преобразование внешнее представление последовательности Байт s во внутреннее представление последовательности CharType.
result in(
StateType& _State,
const Byte* _First1,
const Byte* _Last1,
const Byte*& _Next1,
CharType* _First2,
CharType* _Last2,
CharType*& _Next2,
) const;
Параметры
_State
Состояние преобразования, поддерживаемое между вызовами к функции-члену._First1
Указатель на начало последовательности для преобразования._Last1
Указатель на конец последовательности для преобразования._Next1
Указатель за пределами результирующей последовательности к первому символу unconverted._First2
Указатель на начало результирующей последовательности._Last2
Указатель на конец результирующей последовательности._Next2
Указатель на CharType, который приходит после последнего преобразованного Chartype к первому символу в последовательности без изменений назначения.
Возвращаемое значение
Return, указывающее успешное завершение, частично успешного или неуспешного завершения операции.Return функций:
Если последовательность codecvt_base::error источника, сформированный больноой.
codecvt_base::noconv если функция не выполняет преобразование.
codecvt_base::ok, если преобразование завершилось успешно.
codecvt_base::partial недостаточны, если источник или назначение не достаточно велика для преобразования успешно.
Заметки
_State должно представлять начальное состояние преобразования в начале новой последовательности источника.Функция изменяет его сохраненное значение, например для отражения текущего состояния успешного преобразования.После преобразования _State частично, необходимо задать для разрешения преобразование, чтобы продолжить работу, когда поступают новые символы.
Функция-член возвращает do_in(_State, _First1*, _Last1, _Next1, First2, _Llast2, _Next2*).
Пример
// 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);
}
Требования
заголовок: <locale>
std пространство имен: