C ++ Locale Library - out
Descrição
É usado para traduzir caracteres e a função para de converter assim que falha na conversão de um caractere ou quando from_end é alcançado e seu caractere é convertido com sucesso.
Declaração
A seguir está a declaração 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 - É um objeto de estado.
from, from_end - É usado para encontrar os caracteres iniciais e finais da sequência de origem.
from_next - É usado para localizar um elemento na faixa acima.
to_next - É usado para localizar um elemento na faixa acima.
Valor de retorno
Ele retorna codecvt_base :: result.
Exceções
Se uma exceção for lançada, não haverá mudanças no objeto da faceta, embora os personagens no intervalo possam ter sido afetados.
Corridas de dados
O objeto e os elementos no intervalo [baixo, alto) são acessados.
Exemplo
No exemplo abaixo, 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;
}
Vamos compilar e executar o programa acima, isso produzirá o seguinte resultado -
Enter a sentence: sai ram
Translation successful and sentance should be: sai ram