다음을 통해 공유


codecvt::in

일련의 외부 표현을 변환 바이트일련의 내부 표현에 s CharTypes.

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

매개 변수

  • _State
    멤버 함수 호출 간에 유지 되는 변환 상태입니다.

  • _First1
    변환할 시퀀스의 시작 부분에 대 한 포인터입니다.

  • _Last1
    변환할 시퀀스의 끝에 대 한 포인터입니다.

  • _Next1
    변환 된 첫 번째 변환 되지 않은 문자 시퀀스의 끝에 대 한 포인터입니다.

  • _First2
    변환 된 시퀀스의 시작 부분에 대 한 포인터입니다.

  • _Last2
    변환 된 시퀀스의 끝에 대 한 포인터입니다.

  • _Next2
    포인터는 CharType 마지막 변환 후 제공 Chartype 대상 시퀀스에서 첫 번째 변경 되지 않은 문자.

반환 값

성공, 부분 성공 또는 실패 작업을 나타내는 반환 합니다.함수를 반환합니다.

  • 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

참고 항목

참조

codecvt Class