Biblioteca de configuración regional de C ++: salida
Descripción
Solía traducir caracteres y la función deja de convertir tan pronto como falla al convertir un carácter, o una vez que se alcanza from_end y su carácter se convierte correctamente.
Declaración
A continuación se muestra la declaración para 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;
Parámetros
state - Es un objeto de estado.
from, from_end - Se utiliza para encontrar caracteres iniciales y finales de la secuencia fuente.
from_next - Se utiliza para buscar un elemento en el rango anterior.
to_next - Se utiliza para buscar un elemento en el rango anterior.
Valor devuelto
Devuelve codecvt_base :: result.
Excepciones
Si se lanza una excepción, no hay cambios en el objeto de faceta, aunque es posible que los personajes del rango se hayan visto afectados.
Carreras de datos
Se accede al objeto y a los elementos del rango [bajo, alto).
Ejemplo
En el siguiente ejemplo se explica sobre 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;
}
Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:
Enter a sentence: sai ram
Translation successful and sentance should be: sai ram