Freigeben über


money_get::do_get

Virtuelle Funktion aufgerufen zu den Auszügen ein Zahlenwert von einer Zeichenfolge, die einen Währungswert darstellt.

virtual iter_type do_get(
   iter_type _First,  
   iter_type _Last, 
   bool _Intl,  
   ios_base& _Iosbase,  
   ios_base::iostate& _State, 
   long double& _Val 
) const 
virtual iter_type do_get(
   iter_type _First,  
   iter_type _Last, 
   bool _Intl,  
   ios_base& _Iosbase,  
   ios_base::iostate& _State, 
   string_type& _Val 
) const

Parameter

  • _First
    Eingabeiterator, der den Anfang der zu konvertierende Sequenz.

  • _Last
    Eingabeiterator, der das Ende der zu konvertierende Sequenz.

  • _Intl
    Ein boolescher Wert, der den Typ des Währungssymbols erwartet in der Sequenz angegeben wird: true beim International, false, wenn inländisch.

  • _Iosbase
    Ein Formatcode der, sofern diese angegeben, dass das Währungssymbol optional ist; Andernfalls befindet es erforderlich.

  • _State
    Legt die entsprechenden Bitmaskenelemente für den Streamzustand fest, ob die Operationen nicht erfolgreich waren.

  • _Val
    Eine Zeichenfolge, welche die konvertierte Sequenz speichert.

Rückgabewert

Ein Eingabeiterator, der das erste Element über dem Währungseingabefeld hinaus.

Hinweise

Die erste geschützte virtuelle Memberfunktion, die versucht sequenziellen Elementen entsprechen zuerst, die in an der Sequenz _First[, _Last) beginnen bis ein vollständiges, nicht leeres Währungseingabefeld erkannt hat. Wenn erfolgreich, konvertiert es dieses Feld einer Sequenz eine oder mehrere Dezimalstellen, optional vorangestellt von einem Minuszeichen (–), um den Umfang und die Speicherung darzustellen Ergebnisse im string_type-Objekt _Val. Es gibt ein Iterator zurück, der das erste Element über dem Währungseingabefeld hinaus festlegen. Andernfalls werden die Funktion eine leere Sequenz in _Val und ios_base::failbit im _State fest. Sie gibt ein Iterator zurück, der das erste Element in jedem Präfix eines gültigen Währungseingabefelds hinaus festlegen. In jedem Fall der Rückgabewert _Last entspricht, wird die Funktion ios_base::eofbit in _State fest.

Die zweite geschützte virtuelle Memberfunktion verhält sich genauso wie das erste, außer dass, wenn es erfolgreich die optional Zifferensequenz mit Vorzeichen in einen Wert des Typs long double und Speicher konvertiert, die in _Val ausführen.

Das Format eines Währungseingabefelds wird durch Gebietsschemafacet fac bestimmt, das durch den effektiven Aufruf use_facet <moneypunct<CharType, intl>>zurückgegebene (iosbase.getloc).

Dies gilt insbesondere in folgenden Fällen:

  • fac.negative_format bestimmt die Reihenfolge, in der Komponenten des Felds auftreten.

  • fac.curr_symbol bestimmt die Sequenz von Elementen, die ein Währungssymbol bildet.

  • fac.positive_sign bestimmt die Sequenz von Elementen, die ein positiver Vorzeichen bildet.

  • fac.negative_sign bestimmt die Sequenz von Elementen, die ein negatives Vorzeichen bildet.

  • fac.Gruppieren bestimmt, wie Ziffern auf der linken Seite eines Dezimaltrennzeichens gruppiert werden.

  • fac.thousands_sep bestimmt das Element, das Gruppen Ziffern auf der linken Seite eines Dezimaltrennzeichens trennt.

  • fac.decimal_point bestimmt das Element, das die ganzzahligen Ziffern von den Bruchsziffern trennt.

  • fac.frac_digits bestimmt die Anzahl der signifikanten Bruchsziffern auf der rechten Seite eines Dezimaltrennzeichens. Wenn es einen Währungswert mit mehr Bruchsziffern analysiert als für von frac_digits, wird das do_get beendet, zu analysieren, nachdem es höchstens frac_digits Zeichen verwendet hat.

Wenn die Zeichenzeichenfolge (fac.negative_sign oder fac.positive_sign) verfügt über mehr als ein Element, nur das erste Element gefunden wird, wo das Element gleich money_base::sign im Formatmuster angezeigt (fac.neg_format). Alle übrigen Elemente werden am Ende des Währungseingabefelds gefunden. Wenn keines Zeichenfolge ein erstes Element, das Folgendes Element im Währungseingabefeld entspricht, wird die Zeichenzeichenfolge genommen, z leer und das Vorzeichen positiv ist.

Wenn iosbase.Flags &showbase ist, die Zeichenfolge fac ungleich 0.curr_symbol muss übereinstimmen, wo das Element gleich money_base::symbol im Formatmuster wird. Wenn money_base::symbol am Ende des Formatmusters auftritt und wenn keine Elemente der Zeichenzeichenfolge übereinstimmen verbleiben, wird das Währungssymbol nicht. Andernfalls wird das Währungssymbol optional gefunden.

Wenn keine Instanzen von fac.thousands_sep treten im Wertteil des Währungseingabefelds (das Element gleich money_base::value im Formatmuster wird), keine gruppierende Einschränkung wird angewendet auf. Andernfalls haben alle Gruppenspalten Einschränkungen über fac auf.Gruppierung wird erzwungen. Beachten Sie, dass die resultierende Ziffernsequenz eine ganze Zahl darstellt, deren niederwertiges fac. Dezimalstellen frac_digits werden auf der rechten Seite des Dezimaltrennzeichens betrachtet.

Beliebige Leerstellen werden verglichen, wo das Element gleich money_base::space im Formatmuster wird angezeigt, wenn dies anders am Ende des Formatmusters wird. Andernfalls werden keine interne Leerzeichen gefunden. Ein Element ch wird als Leerzeichen wenn use_facet <C<CharType> >(iosbase.getloc).ist(ctype_base::space, ch) ist true.

Beispiel

Im Beispiel für abrufen, die do_get aufruft.

Anforderungen

Gebietsschema Header: <>

Namespace: std

Siehe auch

Referenz

money_get-Klasse