Compartilhar via


money_put::do_put

Uma função virtual chamada para converter o número ou uma cadeia de caracteres para uma sequência de caracteres que representa um valor monetário.

virtual iter_type do_put(
    iter_type _Next, 
    bool _Intl, 
    ios_base& _Iosbase,
    CharType _Fill, 
    const string_type& _Val
) const;
virtual iter_type do_put(
    iter_type _Next, 
    bool _Intl, 
    ios_base& _Iosbase,
    CharType _Fill,
    long double _Val
) const;

Parâmetros

  • _Next
    Um iterador que trata o primeiro elemento da cadeia de caracteres inserida.

  • _Intl
    Um valor booliano que indica o tipo de símbolo de moeda esperado na sequência: se true internacional, false se doméstico.

  • _Iosbase
    Um sinalizador de formato que quando o conjunto indicar que o símbolo de moeda é opcional; caso contrário, será necessário

  • _Fill
    Um caractere que é usado espaçando.

  • _Val
    Um objeto de cadeia de caracteres a ser convertido.

Valor de retorno

Um iterador de saída os endereços que a posição uma elemento além do mais recente gerada.

Comentários

A primeira função de membro protegida virtual gerencia os elementos sequenciais que começam em _Next a gerar um campo monetário de saída do objeto _Valde string_type . A sequência controlada por _Val deve iniciar com um ou mais dígitos decimais, opcionalmente precedidos por um sinal de menos (–), que representa a quantidade. A função retorna um iterador que designa o primeiro elemento além de campo monetário gerado de saída.

A segunda função de membro protegida virtual se comportará da mesma forma que os primeiros, exceto que o efetivamente primeiros converte _Val a uma sequência de dígitos decimais, opcionalmente precedida por um sinal de menos, então por converte que colocam em sequência como acima.

O formato de um campo monetário de saída é determinado pelo fac de faceta de localidade retornado pela chamada efetivo () use_facet <moneypunct<CharType, internacionais> >(iosbase.getloc).

Especificamente:

  • fac.pos_format determina a ordem em que os componentes do campo são gerados para um valor não negativo.

  • fac.negative_format determina a ordem em que os componentes do campo são gerados para um valor negativo.

  • fac.curr_symbol determina a sequência de elementos para gerar um símbolo de moeda.

  • fac.positive_sign determina a sequência de elementos para gerar um sinal positivo.

  • fac.negative_sign determina a sequência de elementos para gerar um sinal negativo.

  • fac.clustering determina como são agrupados os dígitos à esquerda de qualquer ponto decimal.

  • fac.thousands_sep determina o elemento que separa grupos de dígitos à esquerda de qualquer ponto decimal.

  • fac.decimal_point determina o elemento que separa os dígitos do inteiro dos dígitos de fração.

  • fac.frac_digits determina o número de dígitos significativos de fração à direita de qualquer ponto decimal.

Se a cadeia de caracteres de sinal (fac.negative_sign ou fac.positive_sign) tem mais de um elemento, apenas o primeiro elemento é gerado em que o elemento igual a money_base::sign aparece no padrão de formato (fac.neg_format ou fac.pos_format). Todos os elementos restantes são gerados no final do campo monetário de saída.

Se iosbase.sinalizadores &showbase for diferente de zero, a cadeia de caracteres fac.curr_symbol é gerado em que o elemento igual a money_base::symbol aparece no padrão de formato. Caso contrário, nenhum símbolo de moeda é gerado.

Se nenhuma restrição de agrupamento é imposta por fac.grouping (seu primeiro elemento tem o valor CHAR_MAX), nenhuma em instâncias de fac.thousands_sep é gerado na parte do valor do campo monetário de saída (onde o elemento igual a money_base::value aparece no padrão de formato). Se fac.frac_digits for zero, nenhuma instância de fac.decimal_point é gerado depois dos dígitos decimais. Caso contrário, o campo monetário resultante de saída coloca o facde ordem. dígitos decimais defrac_digits à direita do ponto decimal.

O preenchimento ocorre como para a qualquer campo numérico de saída, exceto que se iosbase.flags &iosbase.interno for diferente de zero, qualquer preenchimento interno é gerado em que o elemento igual a money_base::space aparece no padrão de formato, se é exibida. Caso contrário, o preenchimento interno ocorre antes da sequência gerado. O caractere de preenchimento é fill.

As chamadas de função iosbase.width(0) para redefinir a largura de campo como zero.

Exemplo

Consulte o exemplo de colocado, onde a função de membro virtual é chamada por put.

Requisitos

localidade <deCabeçalho: >

Namespace: std

Consulte também

Referência

Classe money_put