Поделиться через


codecvt::out

Преобразует последовательность внутреннего CharType s в последовательности внешнего Byte.

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

Параметры

  • _State
    Состояние преобразования, поддерживаемое между вызовами к функции-члену.

  • _First1
    Указатель на начало последовательности для преобразования.

  • _Last1
    Указатель на конец последовательности для преобразования.

  • _Next1
    Ссылка на указатель на первый unconverted CharType после последнего CharType преобразовала.

  • _First2
    Указатель на начало результирующей последовательности.

  • _Last2
    Указатель на конец результирующей последовательности.

  • _Next2
    Ссылка на указатель на первый unconverted Byte после последнего преобразованного Byte.

Возвращаемое значение

Функция-член возвращает do_out(_State, _First1, _Last1, _Next1, _First2, _Last2, _Next2).

Заметки

Дополнительные сведения см. в разделе codecvt::do_out.

Пример

// codecvt_out.cpp
// compile with: /EHsc
#define _INTL
#include <locale>
#include <iostream>
#include <wchar.h>
using namespace std;
#define LEN 90
int main( )   
{
   char pszExt[LEN+1];
   wchar_t *pwszInt = L"This is the wchar_t string to be converted.";
   memset( &pszExt[0], 0, ( sizeof( char ) )*( LEN+1 ) );
   char* pszNext;
   const wchar_t* pwszNext;
   mbstate_t state;
   locale loc("C");//English_Britain");//German_Germany
   int res = use_facet<codecvt<wchar_t, char, mbstate_t> >
      ( loc ).out( state,
      pwszInt, &pwszInt[wcslen( pwszInt )], pwszNext ,
      pszExt, &pszExt[wcslen( pwszInt )], pszNext );
   pszExt[wcslen( pwszInt )] = 0;
   cout << ( ( res!=codecvt_base::error ) ? "It worked: " : "It didn't work: " )
   << "The converted string is:\n ["
   << &pszExt[0]
   << "]" << endl;
}
  

Требования

заголовок: <locale>

std пространство имен:

См. также

Ссылки

codecvt Class