num_get::do_get
Uma função virtual que é chamada para um extratos numérico ou um valor Booleano de uma seqüência de caracteres.
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long& _Val
) const;virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned short& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned int& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned long& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long long& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned long long& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
float& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
double& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long double& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
void *& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
bool& _Val
) const;
Parâmetros
_First
O início do intervalo de caracteres de que para ler o número._Last
A o final do intervalo de caracteres de que para ler o número._Iosbase
ios_base cujos os sinalizadores são usados pela conversão._State
O estado em que o failbit (consulte ios_base::iostate) é adicionado em cima de falha._Val
O valor que foi lido.
Valor de retorno
O iterador após o valor foi lido.
Comentários
A primeira função de membro virtual, protegida
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long& _Val
) const;
corresponde aos elementos seqüenciais que começam em _First na seqüência [_First,_Last) até que reconhece um campo completo, não vazio de entrada inteiro.Se com êxito, ele converte este campo em seu valor equivalente como o tipo long, e armazena o resultado em _Val.Retorna um iterador que designa o primeiro elemento além de campo numérico de entrada.Caso contrário, a função não armazena nada em _Val e defina ios_base::failbit em state.Retorna um iterador que designa o primeiro elemento além de qualquer prefixo de um campo válido de entrada inteiro.Em ambos os casos, se o valor de retorno é igual last, a função define ios_base::eofbit em state.
O campo de entrada inteiro é convertido pelas mesmas regras usadas pelas funções de verificação correspondentes e chamando uma série de elementos de char de um arquivo.(Cada tal elemento de char é assumido mapear para um elemento equivalente de tipo Elem por um simples, linear, mapeando.) A especificação de conversão equivalente de verificação é determinado como segue:
Se iosbase.ios_base::flags() & ios_base::basefield == ios_base::oct, a especificação de conversão é lo.
Se iosbase.flags() & ios_base::basefield == ios_base::hex, a especificação de conversão é lx.
Se iosbase.flags() & ios_base::basefield == 0, a especificação de conversão é li.
Caso contrário, a especificação de conversão é ld.
O formato de um campo de entrada inteiro é determinado por aspecto da localidademaisfac retornado pela chamada use_facet<numpunct<Elem>(iosbase.ios_base::getloc()).Especificamente:
fac.numpunct::grouping() determina como os dígitos à esquerda são agrupados de um ponto decimal
fac.numpunct::thousands_sep() determina a seqüência que separa grupos de dígitos à esquerda de um ponto decimal.
Se nenhuma instância de fac.thousands_sep() ocorre no campo numérico de entrada, nenhuma restrição de agrupamento é aplicada.Caso contrário, todas as restrições de agrupamento aplicada por fac.grouping() estãas e separadores removidos antes da conversão de verificação ocorra.
a quarta função de membro protegida virtual:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned long& _Val
) const;
se comporta o mesmo que o primeiro, exceto que substitui uma especificação de conversão de ld com lu.Se com êxito convertem o campo numérico de entrada um valor do tipo unsigned long e armazena o valor em _Val.
a quinta função de membro protegida virtual:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long long& _Val
) const;
se comporta o mesmo que o primeiro, exceto que substitui uma especificação de conversão de ld com lld.Se com êxito convertem o campo numérico de entrada um valor do tipo long long e armazena o valor em _Val.
a sexta função de membro protegida virtual:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned long long& _Val
) const;
se comporta o mesmo que o primeiro, exceto que substitui uma especificação de conversão de ld com llu.Se com êxito convertem o campo numérico de entrada um valor do tipo unsigned long long e armazena o valor em _Val.
a sétima função de membro protegida virtual:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
float& _Val
) const;
se comporta o mesmo que o primeiro, exceto que esforça-se corresponder um campo de ponto flutuante completo, não vazio de entrada.fac.numpunct::decimal_point() determina a seqüência que separa os dígitos inteiro dos dígitos da fração.O especificador equivalente de conversão de verificação é lf.
a oitava função de membro protegida virtual:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
double& _Val
) const;
se comporta o mesmo que o primeiro, exceto que esforça-se corresponder um campo de ponto flutuante completo, não vazio de entrada.fac.numpunct::decimal_point() determina a seqüência que separa os dígitos inteiro dos dígitos da fração.O especificador equivalente de conversão de verificação é lf.
a nona função de membro protegida virtual:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long double& _Val
) const;
se comporta o mesmo que os oitavos, exceto que o especificador equivalente de conversão de verificação é Lf.
a nona função de membro protegida virtual:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
void *& _Val
) const;
se comporta o mesmo o primeiro, exceto que o especificador equivalente de conversão de verificação é p.
(A primeira décima) função de membro protegida virtual a última:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
bool& _Val
) const;
se comporta o mesmo que o primeiro, exceto que esforça-se corresponder um campo booleano completo, não vazio de entrada.Se com êxito convertem o campo booleano de entrada um valor do tipo bool e armazena o valor em _Val.
Um campo booleano de entrada usa um dos dois formulários.Se iosbase.flags() & ios_base::boolalpha é falso, é o mesmo que um campo de entrada inteiro, exceto que o valor deve ser convertido para 0 (falso) ou para 1 (verdadeiro).Caso contrário, a seqüência deve corresponder fac.numpunct::falsenamepara() (falso), ou fac.numpunct::truenamepara() (verdadeiro).
Exemplo
Consulte o exemplo para obter, onde a função de membro virtual é chamada por do_get.
Requisitos
Cabeçalho: <locale>
namespace: STD