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