Namespace
Varianti

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

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

 
 
Localizzazioni libreria
Impostazioni internazionali e sfaccettature
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
Carattere classificazione
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.
Conversioni
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 categoria classi di base
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.
Facet categorie
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.
Locale specifici aspetti
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.
Codice di conversione sfaccettature
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 locale
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
Membri funzioni
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)
funzione membro pubblica, chiama il virtuale protetto do_put funzione membro della classe più derivata.
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)
scrive caratteri a out sequenza di emissione che rappresentano il valore di v, nel formato richiesto dalle bandiere di formattazione str.flags() e le sfaccettature std::numpunct e std::ctype del locale intrisa nel str flusso. Questa funzione viene chiamata da tutti gli operatori in formato streaming in uscita, come ad esempio 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.
La conversione avviene in quattro fasi
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.

Indice

[modifica] Fase 1: selezione specificatore di conversione

  • I / O flags formato sono ottenuti, come per
    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 il tipo di 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, quindi converte v digitare int ed esegue uscita intero.
    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 ottiene std::use_facet<std::numpunct<charT>>(str.getloc()).truename() se v == true o std::use_facet<std::numpunct<charT>>(str.getloc()).falsename() se v == false, ed emette ogni c successivo carattere della stringa di out con *out++ = c. Nessun ulteriore elaborazione avviene in questo caso, la funzione restituisce 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 il tipo di v è di tipo intero, la prima scelta applicabili delle seguenti cinque è selezionato:
    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, utilizzerà specificatore di conversione %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, utilizzerà specificatore di conversione %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, utilizzerà specificatore di conversione %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 il tipo di v è firmato, utilizzerà specificatore di conversione %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 il tipo di v non è firmato, userà specificatore di conversione %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.
  • Per i tipi interi, modificatore di lunghezza viene aggiunto alla specifica di conversione, se necessario: l per long e unsigned long, ll per 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 il tipo di v è un tipo a virgola mobile, la prima scelta del caso dei seguenti cinque è selezionato:
    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, utilizzerà specificatore di conversione %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, utilizzerà specificatore di conversione %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, utilizzerà specificatore di conversione %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, utilizzerà specificatore di conversione %a (dal C++11)
Original:
If floatfield == (std::ios_base::fixed | std::ios_base::scientific) && !uppercase, will use conversion specifier %a (dal 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, utilizzerà specificatore di conversione %A (dal C++11)
Original:
If floatfield == std::ios_base::fixed | std::ios_base::scientific, will use conversion specifier %A (dal 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, utilizzerà specificatore di conversione %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.
in caso contrario, verrà utilizzato specificatore di conversione %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 il tipo di v è long double, il L modificatore di lunghezza viene aggiunto lo specificatore di conversione.
    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.
  • * Inoltre, se floatfield != (ios_base::fixed | ios_base::scientific), quindi modificatore di precisione si aggiunge, impostato su 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.
  • Per entrambi i tipi interi e in virgola mobile, se showbase è impostata, il # modificatore viene anteposta. Se showpos è impostato, il + modificatore viene anteposta.
    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 il tipo di v è void*, userà specificatore di conversione %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.
  • Una stringa di caratteri ristretto viene creato come se da una chiamata al std::printf(spec, v) nel locale "C", dove spec è lo specificatore di conversione scelto.
    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.

[modifica] Fase 2: specifica delle impostazioni locali di conversione

  • Ogni c carattere ottenuto nella Fase 1, ad eccezione della '.' punto decimale, viene convertito in CharT chiamando 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.
  • Per i tipi aritmetici, il separatore di migliaia di caratteri, ottenuto da std::use_facet<std::numpunct<CharT>>(str.getloc()).thousands_sep(), viene inserito nella sequenza secondo le regole di raggruppamento fornite da 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.
  • Caratteri punto decimale ('.') sono sostituiti da 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.

[modifica] Fase 3: imbottitura

  • Il flag di regolazione è ottenuta come per std::fmtflags adjustfield = (flags & (std::ios_base::adjustfield)) ed esaminati per identificare la posizione padding, come 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, verranno inseriti dopo
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, verranno inseriti prima
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 un carattere di segno si verifica nella rappresentazione, verranno inseriti dopo il segno
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 Stage 1 Rappresentazione iniziato con 0x o 0X, verranno inseriti dopo l'x o 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.
altrimenti, verranno inseriti prima
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() è non-zero (std::setw esempio è stato usato solo) e il numero di grafico dopo Stage 2 è inferiore str.width(), quindi copie del carattere fill vengono inseriti nella posizione indicata da imbottitura per portare la lunghezza della sequenza di 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.

[modifica] Fase 4: uscita

Ogni c carattere successivo alla sequenza di grafico dalla fase 3 è uscita come per *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.

[modifica] Parametri

out -
iteratore che punta al primo carattere da sovrascrivere
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 -
streaming per recuperare le informazioni di formattazione da
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 -
carattere di riempimento utilizzato quando i risultati devono essere imbottite per la larghezza del 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 -
valore da convertire in stringa e di uscita
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.

[modifica] Valore di ritorno

out

[modifica] Note

Lo zero iniziale generata dalla specifica di conversione #o (risultante dalla combinazione di std::showbase e std::oct per esempio) non viene conteggiato come un carattere di riempimento.
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.

[modifica] Esempio

Output di un numero utilizzando locale globale
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

[modifica] Vedi anche

inserisce i dati formattati
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.

(membro pubblico of std::basic_ostream funzione) [edit]