money_get::do_get

Virtuelle Funktion aufgerufen zu den Auszügen ein Zahlenwert aus 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 behandelt.

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

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

  • _Iosbase
    Ein Formatcode, wenn der Satz angibt, dass das Währungssymbol ist optional; andernfalls ist es erforderlich.

  • _State
    Legt die entsprechenden Bitmaskenelemente für den Streamzustand fest, je nachdem ob die Vorgänge oder nicht erfolgreich waren.

  • _Val
    Eine Zeichenfolge, die die konvertierte Sequenz speichert.

Rückgabewert

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

Hinweise

Die erste geschützte virtuelle Memberfunktion versucht, die zuerst sequenziellen Elementen entsprechen, die in der Sequenz [_First_Last) beginnen, bis ein vollständiges, nicht leeren Währungseingabefeld erkannt hat.Wenn erfolgreich, konvertiert es dieses Feld einer Sequenz aus einer oder mehreren Dezimalstellen, optional vorangestellt von einem Minuszeichen (–), die Menge und die Speicher darzustellen das Ergebnis im string_type-Objekt _Val.Es gibt einen Iterator zurück, der das erste Element über dem Währungseingabefeld hinaus festgelegt wird.Andernfalls speichert die Funktion eine leere Sequenz in _Val und legt ios_base::failbit in _State fest.Sie gibt einen Iterator zurück, der das erste Element zu jedem Präfix eines gültigen Währungseingabefelds hinaus festgelegt wird.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 erfolgreich, wenn es die optional Ziffernsequenz mit Vorzeichen in einen Wert des Typs long double und Speicher konvertiert, die in _Val bewerten.

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

Dies gilt insbesondere in folgenden Fällen:

  • fac.negative_format bestimmt die Reihenfolge, in der die 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 eine positive 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 beliebigen Dezimaltrennzeichen gruppiert werden.

  • fac.thousands_sep bestimmt das Element, das Zahlengruppen auf der linken Seite eines beliebigen Dezimaltrennzeichen 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 beliebigen Dezimaltrennzeichen.Wenn eine Währungswert mit mehr als Bruchsziffern analysiert für durch frac_digits aufgerufen werden, wird do_get auf, 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 vorliegt, wo das Element gleich money_base::sign im Formatmuster wird (fac.neg_format).Alle übrigen Elemente werden am Ende des Währungseingabefelds verglichen.Wenn auch keine Zeichenfolge ein erstes Element, das das folgende Element im Währungseingabefeld übereinstimmt, wird die Zeichenzeichenfolge übernommen, wie leer und das Zeichen positiv ist.

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

Wenn keine Instanzen von fac.thousands_sep treten im Wertsteil des Währungseingabefelds (das Element gleich money_base::value im Formatmuster wird), keine gruppierende Einschränkung wird auf festgelegt.Andernfalls erlegten alle Gruppenspalten Einschränkungen durch fac auf.Gruppierung wird erzwungen.Beachten Sie, dass die resultierende Ziffernsequenz eine ganze Zahl darstellt, deren niederwertiges fac.frac_digits Dezimalstellen werden rechts neben dem Dezimalzeichen betrachtet.

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

Beispiel

Im Beispiel für rufen Sie ab, das do_get aufruft.

Anforderungen

Header: <locale>

Namespace: std

Siehe auch

Referenz

money_get Class