Libreria locale C ++ - uscita

Descrizione

Era usato per tradurre i caratteri e la funzione interrompe la conversione non appena non riesce a convertire un carattere, o quando viene raggiunto from_end e il suo carattere viene convertito correttamente.

Dichiarazione

Di seguito è riportata la dichiarazione per std :: ctype :: out.

C ++ 98

result out (state_type& state, 
   const intern_type* from, const intern_type* from_end, const intern_type*& from_next,
   extern_type* to, extern_type* to_limit, extern_type*& to_next) const;

C ++ 11

result out (state_type& state, 
   const intern_type* from, const intern_type* from_end, const intern_type*& from_next,
   extern_type* to, extern_type* to_limit, extern_type*& to_next) const;

Parametri

  • state - È un oggetto di stato.

  • from, from_end - Viene utilizzato per trovare i caratteri iniziali e finali della sequenza sorgente.

  • from_next - Viene utilizzato per trovare un elemento nell'intervallo sopra.

  • to_next - Viene utilizzato per trovare un elemento nell'intervallo sopra.

Valore di ritorno

Restituisce codecvt_base :: result.

Eccezioni

Se viene generata un'eccezione, non vengono apportate modifiche all'oggetto facet, sebbene i caratteri nell'intervallo potrebbero essere stati interessati.

Gare di dati

Si accede all'oggetto e agli elementi nell'intervallo [basso, alto).

Esempio

Nell'esempio seguente viene spiegato lo std :: ctype :: out.

#include <iostream>
#include <locale>
#include <string>
#include <cwchar>

int main () {
   typedef std::codecvt<wchar_t,char,std::mbstate_t> facet_type;

   std::locale mylocale;

   const facet_type& myfacet = std::use_facet<facet_type>(mylocale);

   std::wstring mywstring;
   std::cout << "Enter a sentence: ";
   std::getline (std::wcin,mywstring);

   std::wstring::size_type length = mywstring.length();

   char* pstr= new char [length+1];
   std::mbstate_t mystate = std::mbstate_t();
   const wchar_t* pwc;
   char* pc;

   facet_type::result myresult = myfacet.out (mystate,
      mywstring.c_str(), mywstring.c_str()+length+1, pwc, pstr, pstr+length+1, pc);

   if (myresult==facet_type::ok)
      std::cout << "Translation successful and sentance should be: " << pstr << '\n';

   delete[] pstr;

   return 0;
}

Compiliamo ed eseguiamo il programma sopra, questo produrrà il seguente risultato:

Enter a sentence: sai ram 
Translation successful and sentance should be: sai ram