Espaços nominais
Variantes
Acções

std::num_put::put, std::num_put::do_put

Da cppreference.com
< cpp‎ | locale‎ | num put

 
 
Biblioteca localizações
Localidades e facetas
Original:
Locales and facets
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
locale
Classificação de caracteres
Original:
Character classification
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Conversões
Original:
Conversions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Facet classes base da categoria
Original:
Facet category base classes
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Categorias faceta
Original:
Facet categories
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Específicos da localidade facetas
Original:
Locale-specific facets
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Facetas de conversão de código
Original:
Code conversion facets
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
codecvt_utf8(C++11)
codecvt_utf16(C++11)
C localidade
Original:
C locale
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
 
std::num_put
Funções de membro
Original:
Member functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
num_put::num_put
num_put::~num_put
num_put::put
num_put::do_put
 
Defined in header <locale>
public:

iter_type put( iter_type out, std::ios_base& str, char_type fill, bool v) const;
iter_type put( iter_type out, std::ios_base& str, char_type fill, long v) const;
iter_type put( iter_type out, std::ios_base& str, char_type fill, long long v) const;
iter_type put( iter_type out, std::ios_base& str, char_type fill, unsigned long v) const;
iter_type put( iter_type out, std::ios_base& str, char_type fill, unsigned long long v) const;
iter_type put( iter_type out, std::ios_base& str, char_type fill, double v) const;
iter_type put( iter_type out, std::ios_base& str, char_type fill, long double v) const;

iter_type put( iter_type out, std::ios_base& str, char_type fill, const void* v) const;
(1)
protected:

iter_type do_put( iter_type out, std::ios_base& str, char_type fill, bool v) const;
iter_type do_put( iter_type out, std::ios_base& str, char_type fill, long v) const;
iter_type do_put( iter_type out, std::ios_base& str, char_type fill, long long v) const;
iter_type do_put( iter_type out, std::ios_base& str, char_type fill, unsigned long) const;
iter_type do_put( iter_type out, std::ios_base& str, char_type fill, unsigned long long) const;
iter_type do_put( iter_type out, std::ios_base& str, char_type fill, double v) const;
iter_type do_put( iter_type out, std::ios_base& str, char_type fill, long double v) const;

iter_type do_put( iter_type out, std::ios_base& str, char_type fill, const void* v) const;
(2)
1)
função de membro público, chama a do_put função virtual protegido membro da classe derivada mais.
Original:
public member function, calls the protected virtual member function do_put of the most derived class.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
2)
escreve caracteres ao out seqüência de saída que representa o valor de v, formatado conforme solicitado pelas bandeiras de formatação str.flags() e as facetas std::numpunct e std::ctype da localidade imbuídos no str fluxo. Esta função é chamada por todos os operadores de saída formatados fluxo, como std::cout << n;.
Original:
writes characters to the output sequence out which represent the value of v, formatted as requested by the formatting flags str.flags() and the std::numpunct and std::ctype facets of the locale imbued in the stream str. This function is called by all formatted output stream operators, such as std::cout << n;.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
A conversão ocorre em quatro etapas
Original:
Conversion occurs in four stages
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Índice

[editar] Fase 1: conversão seleção especificador

  • I / O formato bandeiras são obtidos, como se por
    Original:
    I/O format flags are obtained, as if by
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
fmtflags basefield = (str.flags() & std::ios_base::basefield);
fmtflags uppercase = (str.flags() & std::ios_base::uppercase);
fmtflags floatfield = (str.flags() & std::ios_base::floatfield);
fmtflags showpos = (str.flags() & std::ios_base::showpos);
fmtflags showbase = (str.flags() & std::ios_base::showbase);
  • Se o tipo de v é bool
    Original:
    If the type of v is bool
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • * Se boolalpha == 0, em seguida, converte o tipo v int e realiza a saída inteiro.
    Original:
    * If boolalpha == 0, then converts v to type int and performs integer output.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • * Se boolalpha != 0 obtém std::use_facet<std::numpunct<charT>>(str.getloc()).truename() se v == true ou std::use_facet<std::numpunct<charT>>(str.getloc()).falsename() se v == false e produz cada c caráter sucessivo de corda para que out com *out++ = c. Nenhum processamento adicional é feita, neste caso, a função retorna out.
    Original:
    * If boolalpha != 0 obtains std::use_facet<std::numpunct<charT>>(str.getloc()).truename() if v == true or std::use_facet<std::numpunct<charT>>(str.getloc()).falsename() if v == false, and outputs each successive character c of that string to out with *out++ = c. No further processing is done in this case, the function returns out.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Se o tipo de v é um tipo inteiro, a escolha do primeiro dos cinco aplicável seguinte é selecionado:
    Original:
    If the type of v is an integer type, the the first applicable choice of the following five is selected:
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
Se basefield == oct, vai usar especificador de conversão %o
Original:
If basefield == oct, will use conversion specifier %o
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Se basefield == hex && !uppercase, vai usar especificador de conversão %x
Original:
If basefield == hex && !uppercase, will use conversion specifier %x
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Se basefield == hex, vai usar especificador de conversão %X
Original:
If basefield == hex, will use conversion specifier %X
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Se o tipo de v é assinado, vai usar a conversão especificador %d
Original:
If the type of v is signed, will use conversion specifier %d
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Se o tipo de v não é assinado, vai usar a conversão especificador %u
Original:
If the type of v is unsigned, will use conversion specifier %u
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
  • Para tipos inteiros, modificador de comprimento é adicionado à especificação de conversão se necessário: l para long e unsigned long, ll para long long e unsigned long long.
    Original:
    For integer types, length modifier is added to the conversion specification if necessary: l for long and unsigned long, ll for long long and unsigned long long.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Se o tipo de v é um tipo de ponto flutuante, a escolha do primeiro dos cinco aplicável seguinte é selecionado:
    Original:
    If the type of v is a floating-point type, the the first applicable choice of the following five is selected:
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
Se floatfield == std::ios_base::fixed, vai usar especificador de conversão %f
Original:
If floatfield == std::ios_base::fixed, will use conversion specifier %f
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Se floatfield == std::ios_base::scientific && !uppercase, vai usar especificador de conversão %e
Original:
If floatfield == std::ios_base::scientific && !uppercase, will use conversion specifier %e
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Se floatfield == std::ios_base::scientific, vai usar especificador de conversão %E
Original:
If floatfield == std::ios_base::scientific, will use conversion specifier %E
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Se floatfield == (std::ios_base::fixed | std::ios_base::scientific) && !uppercase, vai usar especificador de conversão %a (a partir do C++ 11)
Original:
If floatfield == (std::ios_base::fixed | std::ios_base::scientific) && !uppercase, will use conversion specifier %a (a partir do C++ 11)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Se floatfield == std::ios_base::fixed | std::ios_base::scientific, vai usar especificador de conversão %A (a partir do C++ 11)
Original:
If floatfield == std::ios_base::fixed | std::ios_base::scientific, will use conversion specifier %A (a partir do C++ 11)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Se !uppercase, vai usar especificador de conversão %g
Original:
If !uppercase, will use conversion specifier %g
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
caso contrário, irá usar a conversão especificador %G
Original:
otherwise, will use conversion specifier %G
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
  • * Se o tipo de v é long double, o L modificador de comprimento é adicionado ao especificador de conversão.
    Original:
    * If the type of v is long double, the length modifier L is added to the conversion specifier.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • * Além disso, se floatfield != (ios_base::fixed | ios_base::scientific), então modificador de precisão é adicionado, definido para str.precision()
    Original:
    * Additionally, if floatfield != (ios_base::fixed | ios_base::scientific), then precision modifier is added, set to str.precision()
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Para ambos os tipos inteiros e ponto flutuante, se showbase é definido, o # modificador é adicionado. Se showpos é definido, o + modificador é prefixado.
    Original:
    For both integer and floating-point types, if showbase is set, the modifier # is prepended. If showpos is set, the modifier + is prepended.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Se o tipo de v é void*, vai usar especificador de conversão %p
    Original:
    If the type of v is void*, will use conversion specifier %p
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Uma cadeia de caracteres estreita é criado como se por uma chamada para std::printf(spec, v) na localidade "C", onde spec é o especificador de conversão escolhida.
    Original:
    A narrow character string is created as if by a call to std::printf(spec, v) in the "C" locale, where spec is the chosen conversion specifier.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.

[editar] Fase 2: localidade específica de conversão

  • Cada carácter c obtido na fase 1, que não seja o ponto decimal '.', é convertido em CharT chamando std::use_facet<std::ctype<CharT>>(str.getloc()).widen(c).
    Original:
    Every character c obtained in Stage 1, other than the decimal point '.', is converted to CharT by calling std::use_facet<std::ctype<CharT>>(str.getloc()).widen(c).
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Para tipos aritméticos, o caractere separador de milhares, obtido a partir de std::use_facet<std::numpunct<CharT>>(str.getloc()).thousands_sep(), é inserida a sequência de acordo com as regras de agrupamento fornecido por std::use_facet<std::numpunct<CharT>>(str.getloc()).grouping()
    Original:
    For arithmetic types, the thousands separator character, obtained from std::use_facet<std::numpunct<CharT>>(str.getloc()).thousands_sep(), is inserted into the sequence according to the grouping rules provided by std::use_facet<std::numpunct<CharT>>(str.getloc()).grouping()
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Caracteres ponto decimal ('.') são substituídos por std::use_facet<std::numpunct<CharT>>(str.getloc()).decimal_point()
    Original:
    Decimal point characters ('.') are replaced by std::use_facet<std::numpunct<CharT>>(str.getloc()).decimal_point()
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.

[editar] Fase 3: estofamento

  • A bandeira de ajustamento é obtido como se por std::fmtflags adjustfield = (flags & (std::ios_base::adjustfield)) e examinadas para identificar a localização de preenchimento, como se segue
    Original:
    The adjustment flag is obtained as if by std::fmtflags adjustfield = (flags & (std::ios_base::adjustfield)) and examined to identify padding location, as follows
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
Se adjustfield == std::ios_base::left, irá preencher depois
Original:
If adjustfield == std::ios_base::left, will pad after
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Se adjustfield == std::ios_base::right, irá preencher antes
Original:
If adjustfield == std::ios_base::right, will pad before
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Se adjustfield == std::ios_base::internal e um carácter de sinal ocorre na representação, irá preencher após o sinal
Original:
If adjustfield == std::ios_base::internal and a sign character occurs in the representation, will pad after the sign
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Se adjustfield == std::ios_base::internal e representação Stage 1 começou com 0x ou 0X, irá preencher depois do x ou X
Original:
If adjustfield == std::ios_base::internal and Stage 1 representation began with 0x or 0X, will pad after the x or X
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
de outro modo, irá preencher antes
Original:
otherwise, will pad before
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
  • Se str.width() é diferente de zero (std::setw exemplo foi utilizado apenas) e o número de gráfico após Fase 2 é menor do que str.width(), em seguida, as cópias do carácter fill são inseridas na posição indicada por acolchoamento para trazer o comprimento da sequência de str.width().
    Original:
    If str.width() is non-zero (e.g. std::setw was just used) and the number of CharT's after Stage 2 is less than str.width(), then copies of the fill character are inserted at the position indicated by padding to bring the length of the sequence to str.width().
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.

[editar] Fase 4: saída

Cada c caráter sucessivo a partir da seqüência de gráfico de Fase 3 é a saída, como se por *out++ = c.
Original:
Every successive character c from the sequence of CharT's from Stage 3 is output as if by *out++ = c.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[editar] Parâmetros

out -
iterador apontando para o primeiro personagem a ser substituído
Original:
iterator pointing to the first character to be overwritten
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
str -
transmitir para recuperar as informações de formatação de
Original:
stream to retrieve the formatting information from
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
fill -
caractere de preenchimento utilizado quando os resultados precisam ser preenchidos para a largura do campo
Original:
padding character used when the results needs to be padded to the field width
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
v -
valor a ser convertido para string e saída
Original:
value to convert to string and output
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[editar] Valor de retorno

out

[editar] Notas

O zero inicial gerada pela especificação de conversão #o (resultante da combinação de std::showbase e std::oct por exemplo) não é contado como um caractere de preenchimento.
Original:
The leading zero generated by the conversion specification #o (resulting from the combination of std::showbase and std::oct for example) is not counted as a padding character.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[editar] Exemplo

Saída de um número usando a localização global
Original:
Output a number using global locale
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

#include <iostream>
#include <locale>
 
int main()
{
    auto &facet = std::use_facet<std::num_put<char>>(std::locale());
    facet.put(std::cout, std::cout, '0', 2.71);
    std::cout << '\n';
}

Output:

2,71

[editar] Veja também

insere dados formatados
Original:
inserts formatted data
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(of std::basic_ostream função pública membro) [edit]