Freigeben über


num_get::do_get

Eine virtuelle Funktion, die den Auszügen ein numerisches oder boolesche Wert von einer Zeichenfolge aufgerufen wird.

virtual iter_type do_get(
    iter_type _First,
    iter_type _Last,
    ios_base& _Iosbase,
    ios_base::iostate& _State,
    long& _Val
) const;virtual iter_type do_get(
    iter_type _First,
    iter_type _Last,
    ios_base& _Iosbase,
    ios_base::iostate& _State,
    unsigned short& _Val
) const;
virtual iter_type do_get(
    iter_type _First,
    iter_type _Last,
    ios_base& _Iosbase,
    ios_base::iostate& _State,
    unsigned int& _Val
) const;
virtual iter_type do_get(
    iter_type _First,
    iter_type _Last,
    ios_base& _Iosbase,
    ios_base::iostate& _State,
    unsigned long& _Val
) const;
virtual iter_type do_get(
    iter_type _First, 
    iter_type _Last,
    ios_base& _Iosbase, 
    ios_base::iostate& _State,
    long long& _Val
) const;
virtual iter_type do_get(
    iter_type _First, 
    iter_type _Last,
    ios_base& _Iosbase, 
    ios_base::iostate& _State,
    unsigned long long& _Val
) const;
virtual iter_type do_get(
    iter_type _First,
    iter_type _Last,
    ios_base& _Iosbase,
    ios_base::iostate& _State,
    float& _Val
) const;
virtual iter_type do_get(
    iter_type _First,
    iter_type _Last,
    ios_base& _Iosbase,
    ios_base::iostate& _State,
    double& _Val
) const;
virtual iter_type do_get(
    iter_type _First,
    iter_type _Last,
    ios_base& _Iosbase,
    ios_base::iostate& _State,
    long double& _Val
) const;
virtual iter_type do_get(
    iter_type _First,
    iter_type _Last,
    ios_base& _Iosbase,
    ios_base::iostate& _State,
    void *& _Val
) const;
virtual iter_type do_get(
    iter_type _First,
    iter_type _Last,
    ios_base& _Iosbase,
    ios_base::iostate& _State,
    bool& _Val
) const;

Parameter

  • _First
    Der Anfang des Bereichs von denen der Zeichen, um die Zahl zu lesen.

  • _Last
    Das Ende des Bereichs von denen der Zeichen, um die Zahl zu lesen.

  • _Iosbase
    ios_base, dessen Flags von der Konvertierung verwendet werden.

  • _State
    Der Zustand, auf den failbit (siehe ios_base::iostate) nach Fehler hinzugefügt wird.

  • _Val
    Der gelesene Wert.

Rückgabewert

Der Iterator nach dem Wert ist gelesen wurde.

Hinweise

Die erste geschützte virtuelle Memberfunktion,

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

long& _Val

) const;

entspricht den sequenziellen Elemente ab, die bei _First in der Sequenz [_First, _Last) beginnen, bis ein vollständiges, nicht leeres ganzzahliges Eingabefeld erkannt hat. Wenn erfolgreich, konvertiert sie dieses Feld in den entsprechenden Wert als long, und speichert die Ergebnisse in _Val. Sie gibt ein Iterator zurück, der das erste Element über dem numerischen Eingabefeld hinaus festlegen. Andernfalls werden die Funktion keine _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 ganzzahligen Eingabefelds hinaus festlegen. In jedem Fall der Rückgabewert last entspricht, wird die Funktion ios_base::eofbit in state fest.

Das ganzzahlige Eingabefeld wird durch die gleichen Regeln konvertiert, die von der Scanfunktionen für Vergleiche und das Konvertieren von char-Elemente von einer Datei verwendet werden. (Jedes solche Element char wird angenommen, um zu einem entsprechenden Element des Typs Elem zuzuordnen durch ein einfaches, ein 1:1-Zuordnung und ordnet zu.) Die entsprechende ScanUmwandlungsangabe wird bestimmt, wie folgt:

Wenn iosbase.ios_base::flags() & ios_base::basefield == ios_base::Okt, die Umwandlungsangabe lo ist.

Wenn iosbase.flags() & ios_base::basefield == ios_base::hex, die Umwandlungsangabe lx ist.

Wenn iosbase.flags() & ios_base::basefield == 0, die Umwandlungsangabe li ist.

Andernfalls ist die Umwandlungsangabe ld.

Das Format eines ganzzahligen Eingabefelds erfolgt in Gebietsschemafacetfac erweitert entschlossenes, das durch den Aufruf use_facet <numpunct<Elem>(iosbase. ios_base::getloc()) zurückgegeben wird. Dies gilt insbesondere in folgenden Fällen:

fac.numpunct::grouping() bestimmt, wie Ziffern auf der linken Seite eines Dezimaltrennzeichens gruppiert werden

fac.numpunct::thousands_sep() bestimmt die Reihenfolge, die Zahlengruppen auf der linken Seite eines Dezimaltrennzeichens trennt.

Wenn keine Instanzen von fac.thousands_sep() im Eingabefeld numerischen auftreten, wird keine gruppierende Einschränkung erzwingt. Andernfalls werden alle Gruppenspalten Einschränkungen, die durch fac.grouping() erzwingt, erzwungen und Trennzeichen werden entfernt, bevor die Scankonvertierung auftritt.

Die vierte geschützte virtuelle Memberfunktion:

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

unsigned long& _Val

) const;

verhält sich weitgehend wie das erste, allerdings wird ersetzt eine Umwandlungsangabe von ld durch lu. Wenn erfolgreich es das numerische Eingabefeld in einen Wert vom Typ unsigned long und Speicher konvertiert, die in _Val ausführen.

Die fünfte geschützte virtuelle Memberfunktion:

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

long long& _Val

) const;

verhält sich weitgehend wie das erste, allerdings wird ersetzt eine Umwandlungsangabe von ld durch lld. Wenn erfolgreich es das numerische Eingabefeld in einen Wert vom Typ long long und Speicher konvertiert, die in _Val ausführen.

Die 6. geschützte virtuelle Memberfunktion:

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

unsigned long long& _Val

) const;

verhält sich weitgehend wie das erste, allerdings wird ersetzt eine Umwandlungsangabe von ld durch llu. Wenn erfolgreich es das numerische Eingabefeld in einen Wert vom Typ unsigned long long und Speicher konvertiert, die in _Val ausführen.

Die 7. geschützte virtuelle Memberfunktion:

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

float& _Val

) const;

verhält sich weitgehend wie das erste, es ermittelt, ein vollständiges, nicht leeres Gleitkommaeingabefeld übereinstimmt. fac.numpunct::decimal_point() bestimmt die Reihenfolge, die die ganzzahligen Ziffern von den Bruchsziffern trennt. Der entsprechende Scankonvertierungsspezifizierer ist lf.

Die achte geschützte virtuelle Memberfunktion:

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

double& _Val

) const;

verhält sich weitgehend wie das erste, es ermittelt, ein vollständiges, nicht leeres Gleitkommaeingabefeld übereinstimmt. fac.numpunct::decimal_point() bestimmt die Reihenfolge, die die ganzzahligen Ziffern von den Bruchsziffern trennt. Der entsprechende Scankonvertierungsspezifizierer ist lf.

Die 9. geschützte virtuelle Memberfunktion:

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

long double& _Val

) const;

verhält sich mit dem achte, dass der entsprechende Scankonvertierungsspezifizierer ist Lf.

Die 9. geschützte virtuelle Memberfunktion:

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

void *& _Val

) const;

verhält sich weitgehend das erste, dass der entsprechende Scankonvertierungsspezifizierer ist p.

Die letzte (elften) geschützte virtuelle Memberfunktion:

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

bool& _Val

) const;

verhält sich weitgehend wie das erste, es ermittelt, ein vollständiges, nicht leeres boolesches Eingabefeld übereinstimmt. Wenn erfolgreich es das boolesche Eingabefeld in einen Wert vom Typ bool und Speicher konvertiert, die in _Val ausführen.

Ein Bearbeitungsfeld boolesches nimmt eines von zwei Formulare. Wenn boolalphaiosbase.flags() & ios_base:: false ist, ist der gleiche wie ein ganzzahliges Bearbeitungsfeld, außer dass der konvertierte Wert muss entweder 0 (für false) oder 1 (für true). Andernfalls muss die Sequenz entweder fac.numpunct::falsename() (für false) oder fac.numpunct::truename() übereinstimmen (für true).

Beispiel

Im Beispiel für abrufen, in dem die virtuelle Memberfunktion von do_get aufgerufen wird.

Anforderungen

Gebietsschema Header: <>

Namespace: std

Siehe auch

Referenz

num_get-Klasse