time_get-Klasse
Die Klassenvorlage beschreibt ein Objekt, das als Gebietsschema-Facet dienen kann, um Konvertierungen von Sequenzen vom Typ CharType
in Zeitwerte zu steuern.
Syntax
template <class CharType,
class InputIterator = istreambuf_iterator<CharType>>
class time_get : public time_base;
Parameter
CharType
Der Typ, der innerhalb eines Programms verwendet wird, um Zeichen zu codieren.
InputIterator
Der Iterator, von dem die Zeitwerte gelesen werden.
Hinweise
Wie bei jedem Gebietsschemafacet hat die statische Objekt-ID einen anfänglichen gespeicherten Wert von NULL. Beim ersten Versuch, auf den gespeicherten Wert zuzugreifen, wird in id ein eindeutiger positiver Wert gespeichert.
Konstruktoren
Konstruktor | Beschreibung |
---|---|
time_get | Der Konstruktor für Objekte des Typs time_get . |
TypeDefs
Typname | Beschreibung |
---|---|
char_type | Ein Typ, mit dem ein Zeichen beschrieben wird, das von einem Gebietsschema verwendet wird. |
iter_type | Ein Typ, der einen Eingabeiterator beschreibt. |
Memberfunktionen
Memberfunktion | Beschreibung |
---|---|
date_order | Gibt die Datumsreihenfolge zurück, die von einem Facet verwendet wird. |
do_date_order | Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um die von einem Facet verwendete Datumsreihenfolge zurückzugeben. |
do_get | Liest und konvertiert Zeichendaten in einen Zeitwert. |
do_get_date | Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um eine Zeichenfolge als das Datum zu analysieren, das vom x -Bezeichner für strftime erstellt wurde. |
do_get_monthname | Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um eine Zeichenfolge als Name des Monats zu analysieren. |
do_get_time | Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um eine Zeichenfolge als das Datum zu analysieren, das vom X -Bezeichner für strftime erstellt wurde. |
do_get_weekday | Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um eine Zeichenfolge als Name des Wochentags zu analysieren. |
do_get_year | Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um eine Zeichenfolge als Name des Jahres zu analysieren. |
get | Liest aus einer Zeichendatenquelle und konvertiert die Daten in eine Zeit, die in einer Zeitstruktur gespeichert wird. |
get_date | Analysiert eine Zeichenfolge als das Datum, das vom x -Bezeichner für strftime erzeugt wird. |
get_monthname | Analysiert eine Zeichenfolge als Name des Monats. |
get_time | Analysiert eine Zeichenfolge als das Datum, das vom X -Bezeichner für strftime erzeugt wird. |
get_weekday | Analysiert eine Zeichenfolge als Name des Wochentags. |
get_year | Analysiert eine Zeichenfolge als Name des Jahres. |
Anforderungen
Header:<locale>
Namespace: std
time_get::char_type
Ein Typ, mit dem ein Zeichen beschrieben wird, das von einem Gebietsschema verwendet wird.
typedef CharType char_type;
Hinweise
Der Typ stellt ein Synonym für den Vorlagenparameter CharType dar.
time_get::d ate_order
Gibt die Datumsreihenfolge zurück, die von einem Facet verwendet wird.
dateorder date_order() const;
Rückgabewert
Datumsreihenfolge, die von einem Facet verwendet wird.
Hinweise
Die Memberfunktion gibt do_date_order zurück.
Beispiel
// time_get_date_order.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
#include <time.h>
using namespace std;
void po( char *p )
{
locale loc( p );
time_get <char>::dateorder order = use_facet <time_get <char> >( loc ).date_order ( );
cout << loc.name( );
switch (order){
case time_base::dmy: cout << "(day, month, year)" << endl;
break;
case time_base::mdy: cout << "(month, day, year)" << endl;
break;
case time_base::ydm: cout << "(year, day, month)" << endl;
break;
case time_base::ymd: cout << "(year, month, day)"<< endl;
break;
case time_base::no_order: cout << "(no_order)"<< endl;
break;
}
}
int main( )
{
po( "C" );
po( "german" );
po( "English_Britain" );
}
C(month, day, year)
German_Germany.1252(day, month, year)
English_United Kingdom.1252(day, month, year)
time_get::d o_date_order
Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um die von einem Facet verwendete Datumsreihenfolge zurückzugeben.
virtual dateorder do_date_order() const;
Rückgabewert
Datumsreihenfolge, die von einem Facet verwendet wird.
Hinweise
Die virtuelle geschützte Memberfunktion gibt einen Wert vom Typ time_base::dateorder zurück, der die Reihenfolge beschreibt, in der Datumskomponenten von do_get_date zugeordnet werden. In dieser Implementierung ist der Wert time_base::mdy und entspricht Datumsangaben der Form Dezember 2, 1979.
Beispiel
Siehe das Beispiel für date_order, mit dem do_date_order
aufgerufen wird.
time_get::d o_get
Liest und konvertiert Zeichendaten in einen Zeitwert. Verwendet einen Konvertierungsspezifizierer und -modifizierer.
virtual iter_type
do_get(
iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm,
char fmt,
char mod) const;
Parameter
first
Ein Eingabeiterator, der den Anfang der zu konvertierenden Sequenz angibt.
last
Ein Eingabeiterator, der das Ende der Sequenz angibt.
iosbase
Ein Streamobjekt.
state
Ein Feld in iosbase, bei dem geeignete Bitmaskenelemente auf Fehler festgelegt sind.
ptm
Ein Zeiger auf die Zeitstruktur, in der die Zeit gespeichert werden soll.
Fmt
Eine Konvertierungsspezifiziererzeichen.
mod
Ein optionales Modifiziererzeichen.
Rückgabewert
Gibt einen Iterator zurück, der das erste nicht konvertierte Element kennzeichnet. Ein Konvertierungsfehler wird festgelegt ios_base::failbit
state
und zuerst zurückgegeben.
Hinweise
Die virtuelle Memberfunktion konvertiert und überspringt ein oder mehrere Eingabeelemente im Bereich [first
, last
), um die in einem oder mehreren Membern *pt
gespeicherten Werte zu bestimmen. Ein Konvertierungsfehler wird festgelegt ios_base::failbit
state
und zuerst zurückgegeben. Andernfalls gibt die Funktion einen Iterator zurück, der das erste nicht konvertierte Element festlegt.
Es gibt die folgenden Konvertierungsspezifizierer:
'a'
oder 'A'
– bewirkt dasselbe Verhalten wie time_get::get_weekday.
'b'
, 'B'
oder 'h'
– bewirkt dasselbe Verhalten wie time_get::get_monthname.
'c'
– bewirkt dasselbe Verhalten wie "%b %d %H : %M : %S %Y"
.
'C'
– konvertiert ein dezimales Eingabefeld im Bereich [0, 99] in den Wert val
und speichert val * 100 - 1900
in pt-&tm_year
.
'd'
oder 'e'
– konvertiert ein dezimales Eingabefeld im Bereich [1, 31] und speichert den Wert in pt-&tm_mday
.
'D'
– bewirkt dasselbe Verhalten wie "%m / %d / %y"
.
'H'
– konvertiert ein dezimales Eingabefeld im Bereich [0, 23] und speichert dessen Wert in pt-&tm_hour
.
'I'
– konvertiert ein dezimales Eingabefeld im Bereich [0, 11] und speichert dessen Wert in pt-&tm_hour
.
'j'
– konvertiert ein dezimales Eingabefeld im Bereich [1, 366] und speichert dessen Wert in pt-&tm_yday
.
'm'
– konvertiert ein dezimales Eingabefeld im Bereich [1, 12] in den Wert val
und speichert val - 1
in pt-&tm_mon
.
'M'
– konvertiert ein dezimales Eingabefeld im Bereich [0, 59] und speichert dessen Wert in pt-&tm_min
.
'n'
oder 't'
– bewirkt dasselbe Verhalten wie " "
.
'p'
– konvertiert „AM“ oder „am“ in 0 und „PM“ oder „PM“ in 12 und addiert diesen Wert zu pt-&tm_hour
hinzu.
'r'
– bewirkt dasselbe Verhalten wie "%I : %M : %S %p"
.
'R'
– bewirkt dasselbe Verhalten wie "%H %M"
.
'S'
– konvertiert ein dezimales Eingabefeld im Bereich [0, 59] und speichert dessen Wert in pt-&tm_sec
.
'T'
oder 'X'
– bewirkt dasselbe Verhalten wie "%H : %M : S"
.
'U'
– konvertiert ein dezimales Eingabefeld im Bereich [0, 53] und speichert dessen Wert in pt-&tm_yday
.
'w'
– konvertiert ein dezimales Eingabefeld im Bereich [0, 6] und speichert dessen Wert in pt-&tm_wday
.
'W'
– konvertiert ein dezimales Eingabefeld im Bereich [0, 53] und speichert dessen Wert in pt-&tm_yday
.
'x'
– bewirkt dasselbe Verhalten wie "%d / %m / %y"
.
'y'
– konvertiert ein dezimales Eingabefeld im Bereich [0, 99] in den Wert val
und speichert val < 69 val + 100 : val
in pt-&tm_year
.
'Y'
– bewirkt dasselbe Verhalten wie time_get::get_year.
Jeder andere Konvertierungsspezifizierer bewirkt, dass ios_base::failbit
in state
festgelegt wird und ein Rücksprung erfolgt. In dieser Implementierung wirkt sich keiner der Modifizierer aus.
time_get::d o_get_date
Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um eine Zeichenfolge als das Datum zu analysieren, das vom x-Bezeichner für strftime
erstellt wurde.
virtual iter_type do_get_date(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parameter
first
Der Eingabeiterator, der den Anfang der zu konvertierenden Sequenz adressiert.
last
Der Eingabeiterator, der das Ende der zu konvertierenden Sequenz adressiert.
iosbase
Ein Formatkennzeichen, das bei Verwendung angibt, dass das Währungssymbol optional ist. Ansonsten ist das Währungssymbol erforderlich.
state
Legt die entsprechenden Bitmaskenelemente für den Streamstatus fest, je nachdem, ob die Vorgänge erfolgreich waren.
ptm
Ein Zeiger auf den Ort, an dem die Datumsinformation gespeichert werden soll.
Rückgabewert
Ein Eingabeiterator,der das erste Element nach dem Eingabefeld adressiert.
Hinweise
Die virtuelle geschützte Memberfunktion versucht, sequenzielle Elemente zuzuordnen, und beginnt zuerst in der Sequenz [ first
, last
), bis sie ein vollständiges, nicht leeres Datumseingabefeld erkannt hat. Bei erfolgreicher Ausführung konvertiert es dieses Feld in den entsprechenden Wert wie die Komponenten tm::tm_mon, tm::tm_day und tm::tm_year und speichert die Ergebnisse in ptm->tm_mon
, ptm->tm_day
bzw ptm->tm_year
. in . Sie gibt einen Iterator zurück, der das erste Element nach dem Datumseingabefeld festlegt. Andernfalls legt die Funktion den Zustand fest.iosbase::failbit
Sie gibt einen Iterator zurück, der das erste Element nach jedem Präfix eines gültigen Datumseingabefelds festlegt. In beiden Fällen, wenn der Rückgabewert der letzten entspricht, legt die Funktion den Zustand festios_base::eofbit
.
Das Format für das Datumseingabefeld ist vom Gebietsschema abhängig. Für das Standardgebietsschema hat das Datumseingabefeld die Form MMM DD, YYYY:
MMM wird durch Aufrufen von get_monthname abgeglichen, das den Monat angibt.
DD ist eine Folge von Dezimalziffern, deren entsprechender numerischer Wert im Bereich [1, 31] liegen muss und den Tag des Monats angibt.
YYYY wird durch Aufrufen von get_year abgeglichen, das das Jahr angibt.
Die literalen Leerzeichen und Kommas müssen mit den entsprechenden Elementen in der Eingabesequenz übereinstimmen.
Beispiel
Siehe das Beispiel für get_date, mit dem do_get_date
aufgerufen wird.
time_get::d o_get_monthname
Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um eine Zeichenfolge als Name des Monats zu analysieren.
virtual iter_type do_get_monthname(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parameter
first
Der Eingabeiterator, der den Anfang der zu konvertierenden Sequenz adressiert.
last
Der Eingabeiterator, der das Ende der zu konvertierenden Sequenz adressiert.
iosbase
Nicht verwendet.
state
Ein Ausgabeparameter, der die entsprechenden Bitmaskenelemente für den Streamstatus festlegt, je nachdem, ob die Vorgänge erfolgreich waren.
ptm
Ein Zeiger auf den Ort, an dem die Monatsinformation gespeichert werden soll.
Rückgabewert
Ein Eingabeiterator,der das erste Element nach dem Eingabefeld adressiert.
Hinweise
Die virtuelle geschützte Memberfunktion versucht, sequenzielle Elemente zuzuordnen, und beginnt zuerst in der Sequenz [ first
, last
), bis sie ein vollständiges, nicht leeres Monatseingabefeld erkannt hat. Bei erfolgreicher Ausführung konvertiert es dieses Feld in den entsprechenden Wert als Komponente tm::tm_mon und speichert das Ergebnis in ptm->tm_mon
. Sie gibt einen Iterator zurück, der das erste Element nach dem Monatseingabefeld festlegt. Andernfalls legt die Funktion den Zustand fest.ios_base::failbit
Sie gibt einen Iterator zurück, der das erste Element nach jedem Präfix eines gültigen Monatseingabefelds festlegt. In beiden Fällen, wenn der Rückgabewert der letzten entspricht, legt die Funktion den Zustand festios_base::eofbit
.
Das Monatseingabefeld ist eine Sequenz, die die längste aus einer Reihe von gebietsschemaspezifischen Zeichenfolgen wie Jan, Januar, Feb, Februar usw. zuordnet. Der konvertierte Wert ist die Anzahl von Monaten seit Januar.
Beispiel
Siehe das Beispiel für get_monthname, mit dem do_get_monthname
aufgerufen wird.
time_get::d o_get_time
Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um eine Zeichenfolge als das Datum zu analysieren, das vom X-Bezeichner für strftime
erstellt wurde.
virtual iter_type do_get_time(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parameter
first
Der Eingabeiterator, der den Anfang der zu konvertierenden Sequenz adressiert.
last
Der Eingabeiterator, der das Ende der zu konvertierenden Sequenz adressiert.
iosbase
Nicht verwendet.
state
Legt die entsprechenden Bitmaskenelemente für den Streamstatus fest, je nachdem, ob die Vorgänge erfolgreich waren.
ptm
Ein Zeiger auf den Ort, an dem die Datumsinformation gespeichert werden soll.
Rückgabewert
Ein Eingabeiterator,der das erste Element nach dem Eingabefeld adressiert.
Hinweise
Die virtuelle geschützte Memberfunktion versucht, sequenzielle Elemente zuzuordnen, und beginnt zuerst in der Sequenz [ first
, last
), bis sie ein vollständiges, nicht leeres Zeiteingabefeld erkannt hat. Bei erfolgreicher Ausführung konvertiert es dieses Feld in den entsprechenden Wert wie die Komponenten tm::tm_hour
, tm::tm_min
und , und tm::tm_sec
speichert die Ergebnisse in ptm->tm_hour
, ptm->tm_min
bzw ptm->tm_sec
. in. Sie gibt einen Iterator zurück, der das erste Element nach dem Zeiteingabefeld festlegt. Andernfalls legt die Funktion den Zustand fest.ios_base::failbit
Sie gibt einen Iterator zurück, der das erste Element nach jedem Präfix eines gültigen Zeiteingabefelds festlegt. In beiden Fällen, wenn der Rückgabewert der letzten entspricht, legt die Funktion den Zustand festios_base::eofbit
.
In dieser Implementierung hat das Zeiteingabefeld die Form HH:MM:SS:
HH ist eine Folge von Dezimalziffern, deren entsprechender numerischer Wert im Bereich [0, 24) liegen muss und die Stunde des Tages angibt.
MM ist eine Folge von Dezimalziffern, deren entsprechender numerischer Wert im Bereich [0, 60) liegen muss und die Minuten nach der Stunde angibt.
SS ist eine Folge von Dezimalziffern, deren entsprechender numerischer Wert im Bereich [0, 60) liegen muss und die Sekunden nach der Minute angibt.
Die literalen Doppelpunkte müssen mit den entsprechenden Elementen in der Eingabesequenz übereinstimmen.
Beispiel
Siehe das Beispiel für get_time, mit dem do_get_time
aufgerufen wird.
time_get::d o_get_weekday
Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um eine Zeichenfolge als Name des Wochentags zu analysieren.
virtual iter_type do_get_weekday(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parameter
first
Der Eingabeiterator, der den Anfang der zu konvertierenden Sequenz adressiert.
last
Der Eingabeiterator, der das Ende der zu konvertierenden Sequenz adressiert.
iosbase
Ein Formatkennzeichen, das bei Verwendung angibt, dass das Währungssymbol optional ist. Ansonsten ist das Währungssymbol erforderlich.
state
Legt die entsprechenden Bitmaskenelemente für den Streamstatus fest, je nachdem, ob die Vorgänge erfolgreich waren.
ptm
Ein Zeiger auf den Ort, an dem die Wochentagsinformation gespeichert werden soll.
Rückgabewert
Ein Eingabeiterator,der das erste Element nach dem Eingabefeld adressiert.
Hinweise
Die virtuelle geschützte Memberfunktion versucht, sequenzielle Elemente abzugleichen, die zuerst in der Sequenz [ first
, ) last
beginnen, bis es ein vollständiges, nicht entsempmendes Wochentag-Eingabefeld erkannt hat. Bei erfolgreicher Ausführung konvertiert es dieses Feld in den entsprechenden Wert wie die Komponente tm::tm_wday und speichert das Ergebnis in ptm->tm_wday
. Sie gibt einen Iterator zurück, der das erste Element nach dem Wochentagseingabefeld festlegt. Andernfalls legt die Funktion den Zustand fest.ios_base::failbit
Sie gibt einen Iterator zurück, der das erste Element nach jedem Präfix eines gültigen Wochentagseingabefelds festlegt. In beiden Fällen, wenn der Rückgabewert der letzten entspricht, legt die Funktion den Zustand festios_base::eofbit
.
Das Wochentagseingabefeld ist eine Sequenz, die die längste aus einer Reihe von gebietsschemaspezifischen Zeichenfolgen wie So, Sonntag, Mo, Montag usw. zuordnet. Der konvertierte Wert ist die Anzahl von Tagen seit Sonntag.
Beispiel
Siehe das Beispiel für get_weekday, mit dem do_get_weekday
aufgerufen wird.
time_get::d o_get_year
Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um eine Zeichenfolge als Name des Jahres zu analysieren.
virtual iter_type do_get_year(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parameter
first
Der Eingabeiterator, der den Anfang der zu konvertierenden Sequenz adressiert.
last
Der Eingabeiterator, der das Ende der zu konvertierenden Sequenz adressiert.
iosbase
Ein Formatkennzeichen, das bei Verwendung angibt, dass das Währungssymbol optional ist. Ansonsten ist das Währungssymbol erforderlich.
state
Legt die entsprechenden Bitmaskenelemente für den Streamstatus fest, je nachdem, ob die Vorgänge erfolgreich waren.
ptm
Ein Zeiger auf den Ort, an dem die Jahresinformation gespeichert werden soll.
Rückgabewert
Ein Eingabeiterator,der das erste Element nach dem Eingabefeld adressiert.
Hinweise
Die virtuelle geschützte Memberfunktion versucht, sequenzielle Elemente abzugleichen, die zuerst in der Sequenz [ first
, last
) beginnen, bis sie ein vollständiges, nicht entsempziges Jahr-Eingabefeld erkannt hat. Bei erfolgreicher Ausführung konvertiert es dieses Feld in den entsprechenden Wert wie die Komponente tm::tm_year und speichert das Ergebnis in ptm->tm_year
. Sie gibt einen Iterator zurück, der das erste Element nach dem Jahreseingabefeld festlegt. Andernfalls legt die Funktion den Zustand fest.ios_base::failbit
Sie gibt einen Iterator zurück, der das erste Element nach jedem Präfix eines gültigen Jahreseingabefelds festlegt. In beiden Fällen, wenn der Rückgabewert der letzten entspricht, legt die Funktion den Zustand festios_base::eofbit
.
Das Jahreseingabefeld ist eine Folge von Dezimalziffern, deren entsprechender numerischer Wert im Bereich [1900, 2036) liegen muss. Der gespeicherte Wert ist dieser Wert minus 1900. In dieser Implementierung repräsentieren Werte im Bereich [69, 136) den Bereich von Jahren [1969, 2036). Werte im Bereich [0, 69) sind ebenfalls zulässig, können jedoch abhängig von der jeweiligen Übersetzungsumgebung entweder den Bereich von Jahren [1900, 1969) oder [2000, 2069) darstellen.
Beispiel
Siehe das Beispiel für get_year, mit dem do_get_year
aufgerufen wird.
time_get::get
Liest aus einer Zeichendatenquelle und konvertiert die Daten in eine Zeit, die in einer Zeitstruktur gespeichert wird. Die erste Funktion akzeptiert einen Konvertierungsspezifizierer und -modifizierer, die zweite akzeptiert mehrere.
iter_type get(
iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm,
char fmt,
char mod) const;
iter_type get(
iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm,
char_type* fmt_first,
char_type* fmt_last) const;
Parameter
first
Eingabeiterator, der angibt, wo die zu konvertierende Sequenz beginnt.
last
Eingabeiterator, der das Ende der zu konvertierenden Sequenz angibt.
iosbase
Der Datenstrom.
state
Die entsprechenden Bitmaskenelemente werden für den Streamzustand festgelegt, um Fehler zu kennzeichnen.
ptm
Zeiger auf die Zeitstruktur, in der die Zeit gespeichert werden soll.
Fmt
Eine Konvertierungsspezifiziererzeichen.
mod
Ein optionales Modifiziererzeichen.
fmt_first
Zeigt auf die Stelle, an der die Formatanweisungen beginnen.
fmt_last
Zeigt auf das Ende der Formatanweisungen.
Rückgabewert
Gibt einen Iterator an das erste Zeichen nach den Daten zurück, die zum Zuweisen der Zeitstruktur *ptm
verwendet wurden.
Hinweise
Die erste Memberfunktion gibt do_get(first, last, iosbase, state, ptm, fmt, mod)
zurück.
Die zweite Memberfunktion ruft do_get
unter der Kontrolle des Formats auf, das durch [fmt_first, fmt_last)
begrenzt ist. Die Funktion behandelt das Format als Sequenz von Feldern, von denen jedes die Konvertierung von null oder mehr Eingabeelementen bestimmt, die durch [first, last)
begrenzt sind. Sie gibt einen Iterator zurück, der das erste nicht konvertierte Element festlegt. Es gibt drei Arten von Feldern:
Ein Prozent (%) im Format, gefolgt von einem optionalen Modifizierer mod in der Gruppe [EOQ#], gefolgt von einem Konvertierungsbezeichner fmt, ersetzt zuerst durch den von do_get(first, last, iosbase, state, ptm, fmt, mod)
. Ein Konvertierungsfehler wird im Zustand festgelegt ios_base::failbit
und zurückgegeben.
Ein Leerzeichenelement im Format bewirkt ein Überspringen von eingegebenen Leerzeichenelementen.
Jedes weitere Element im Format muss mit dem nächsten Eingabeelement übereinstimmen, das übersprungen wird. Ein Übereinstimmungsfehler wird im Zustand festgelegt ios_base::failbit
und zurückgegeben.
time_get::get_date
Analysiert eine Zeichenfolge als das Datum, das vom x-Bezeichner für strftime
erzeugt wird.
iter_type get_date(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parameter
first
Der Eingabeiterator, der den Anfang der zu konvertierenden Sequenz adressiert.
last
Der Eingabeiterator, der das Ende der zu konvertierenden Sequenz adressiert.
iosbase
Ein Formatkennzeichen, das bei Verwendung angibt, dass das Währungssymbol optional ist. Ansonsten ist das Währungssymbol erforderlich.
state
Legt die entsprechenden Bitmaskenelemente für den Streamstatus fest, je nachdem, ob die Vorgänge erfolgreich waren.
ptm
Ein Zeiger auf den Ort, an dem die Datumsinformation gespeichert werden soll.
Rückgabewert
Ein Eingabeiterator,der das erste Element nach dem Eingabefeld adressiert.
Hinweise
Die Memberfunktion gibt do_get_date(first
, , last
, iosbase
, state
) ptm
zurück.
Beachten Sie, dass Monate von 0 bis 11 gezählt werden.
Beispiel
// time_get_get_date.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
#include <time.h>
using namespace std;
int main( )
{
locale loc;
basic_stringstream< char > pszGetF, pszPutF, pszGetI, pszPutI;
ios_base::iostate st = 0;
struct tm t;
memset(&t, 0, sizeof(struct tm));
pszGetF << "July 4, 2000";
pszGetF.imbue( loc );
basic_istream<char>::_Iter i = use_facet <time_get<char> >
(loc).get_date(basic_istream<char>::_Iter(pszGetF.rdbuf( ) ),
basic_istream<char>::_Iter(0), pszGetF, st, &t);
if ( st & ios_base::failbit )
cout << "time_get("<< pszGetF.rdbuf( )->str( )<< ") FAILED on char: " << *i << endl;
else
cout << "time_get("<< pszGetF.rdbuf( )->str( )<< ") ="
<< "\ntm_sec: " << t.tm_sec
<< "\ntm_min: " << t.tm_min
<< "\ntm_hour: " << t.tm_hour
<< "\ntm_mday: " << t.tm_mday
<< "\ntm_mon: " << t.tm_mon
<< "\ntm_year: " << t.tm_year
<< "\ntm_wday: " << t.tm_wday
<< "\ntm_yday: " << t.tm_yday
<< "\ntm_isdst: " << t.tm_isdst
<< endl;
}
time_get(July 4, 2000) =
tm_sec: 0
tm_min: 0
tm_hour: 0
tm_mday: 4
tm_mon: 6
tm_year: 100
tm_wday: 0
tm_yday: 0
tm_isdst: 0
time_get::get_monthname
Analysiert eine Zeichenfolge als Name des Monats.
iter_type get_monthname(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parameter
first
Der Eingabeiterator, der den Anfang der zu konvertierenden Sequenz adressiert.
last
Der Eingabeiterator, der das Ende der zu konvertierenden Sequenz adressiert.
iosbase
Nicht verwendet.
state
Ein Ausgabeparameter, der die entsprechenden Bitmaskenelemente für den Streamstatus festlegt, je nachdem, ob die Vorgänge erfolgreich waren.
ptm
Ein Zeiger auf den Ort, an dem die Monatsinformation gespeichert werden soll.
Rückgabewert
Ein Eingabeiterator,der das erste Element nach dem Eingabefeld adressiert.
Hinweise
Die Memberfunktion gibt do_get_monthname(first
, , last
, iosbase
, state
) ptm
zurück.
Beispiel
// time_get_get_monthname.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
#include <time.h>
using namespace std;
int main( )
{
locale loc ( "French" );
basic_stringstream<char> pszGetF, pszPutF, pszGetI, pszPutI;
ios_base::iostate st = 0;
struct tm t;
memset( &t, 0, sizeof( struct tm ) );
pszGetF << "juillet";
pszGetF.imbue( loc );
basic_istream<char>::_Iter i = use_facet <time_get <char> >
(loc).get_monthname(basic_istream<char>::_Iter(pszGetF.rdbuf( )),
basic_istream<char>::_Iter(0), pszGetF, st, &t);
if (st & ios_base::failbit)
cout << "time_get("<< pszGetF.rdbuf( )->str( )<< ") FAILED on char: " << *i << endl;
else
cout << "time_get("<< pszGetF.rdbuf( )->str( )<< ") ="
<< "\ntm_sec: " << t.tm_sec
<< "\ntm_min: " << t.tm_min
<< "\ntm_hour: " << t.tm_hour
<< "\ntm_mday: " << t.tm_mday
<< "\ntm_mon: " << t.tm_mon
<< "\ntm_year: " << t.tm_year
<< "\ntm_wday: " << t.tm_wday
<< "\ntm_yday: " << t.tm_yday
<< "\ntm_isdst: " << t.tm_isdst
<< endl;
}
time_get(juillet) =
tm_sec: 0
tm_min: 0
tm_hour: 0
tm_mday: 0
tm_mon: 6
tm_year: 0
tm_wday: 0
tm_yday: 0
tm_isdst: 0
time_get::get_time
Analysiert eine Zeichenfolge als das Datum, das vom X-Bezeichner für strftime
erzeugt wird.
iter_type get_time(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parameter
first
Der Eingabeiterator, der den Anfang der zu konvertierenden Sequenz adressiert.
last
Der Eingabeiterator, der das Ende der zu konvertierenden Sequenz adressiert.
iosbase
Nicht verwendet.
state
Legt die entsprechenden Bitmaskenelemente für den Streamstatus fest, je nachdem, ob die Vorgänge erfolgreich waren.
ptm
Ein Zeiger auf den Ort, an dem die Datumsinformation gespeichert werden soll.
Rückgabewert
Ein Eingabeiterator,der das erste Element nach dem Eingabefeld adressiert.
Hinweise
Die Memberfunktion gibt do_get_time(first
, last
, , iosbase
, state
) ptm
zurück.
Beispiel
// time_get_get_time.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
#include <time.h>
using namespace std;
int main( )
{
locale loc;
basic_stringstream<char> pszGetF, pszPutF, pszGetI, pszPutI;
ios_base::iostate st = 0;
struct tm t;
memset( &t, 0, sizeof( struct tm ) );
pszGetF << "11:13:20";
pszGetF.imbue( loc );
basic_istream<char>::_Iter i = use_facet
<time_get <char> >
(loc).get_time(basic_istream<char>::_Iter(pszGetF.rdbuf( )),
basic_istream<char>::_Iter(0), pszGetF, st, &t);
if (st & ios_base::failbit)
cout << "time_get::get_time("<< pszGetF.rdbuf( )->str( )<< ") FAILED on char: " << *i << endl;
else
cout << "time_get::get_time("<< pszGetF.rdbuf( )->str( )<< ") ="
<< "\ntm_sec: " << t.tm_sec
<< "\ntm_min: " << t.tm_min
<< "\ntm_hour: " << t.tm_hour
<< endl;
}
time_get::get_time(11:13:20) =
tm_sec: 20
tm_min: 13
tm_hour: 11
time_get::get_weekday
Analysiert eine Zeichenfolge als Name des Wochentags.
iter_type get_weekday(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parameter
first
Der Eingabeiterator, der den Anfang der zu konvertierenden Sequenz adressiert.
last
Der Eingabeiterator, der das Ende der zu konvertierenden Sequenz adressiert.
iosbase
Ein Formatkennzeichen, das bei Verwendung angibt, dass das Währungssymbol optional ist. Ansonsten ist das Währungssymbol erforderlich.
state
Legt die entsprechenden Bitmaskenelemente für den Streamstatus fest, je nachdem, ob die Vorgänge erfolgreich waren.
ptm
Ein Zeiger auf den Ort, an dem die Wochentagsinformation gespeichert werden soll.
Rückgabewert
Ein Eingabeiterator,der das erste Element nach dem Eingabefeld adressiert.
Hinweise
Die Memberfunktion gibt do_get_weekday(first
, last
, , iosbase
, state
) ptm
zurück.
Beispiel
// time_get_get_weekday.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
#include <time.h>
using namespace std;
int main( )
{
locale loc ( "French" );
basic_stringstream< char > pszGetF, pszPutF, pszGetI, pszPutI;
ios_base::iostate st = 0;
struct tm t;
memset( &t, 0, sizeof( struct tm ) );
pszGetF << "mercredi";
pszGetF.imbue(loc);
basic_istream<char>::_Iter i = use_facet
<time_get<char> >
(loc).get_weekday(basic_istream<char>::_Iter(pszGetF.rdbuf( )),
basic_istream<char>::_Iter(0), pszGetF, st, &t);
if (st & ios_base::failbit)
cout << "time_get::get_time("<< pszGetF.rdbuf( )->str( )<< ") FAILED on char: " << *i << endl;
else
cout << "time_get::get_time("<< pszGetF.rdbuf( )->str( )<< ") ="
<< "\ntm_wday: " << t.tm_wday
<< endl;
}
time_get::get_time(mercredi) =
tm_wday: 3
time_get::get_year
Analysiert eine Zeichenfolge als Name des Jahres.
iter_type get_year(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parameter
first
Der Eingabeiterator, der den Anfang der zu konvertierenden Sequenz adressiert.
last
Der Eingabeiterator, der das Ende der zu konvertierenden Sequenz adressiert.
iosbase
Ein Formatkennzeichen, das bei Verwendung angibt, dass das Währungssymbol optional ist. Ansonsten ist das Währungssymbol erforderlich.
state
Legt die entsprechenden Bitmaskenelemente für den Streamstatus fest, je nachdem, ob die Vorgänge erfolgreich waren.
ptm
Ein Zeiger auf den Ort, an dem die Jahresinformation gespeichert werden soll.
Rückgabewert
Ein Eingabeiterator,der das erste Element nach dem Eingabefeld adressiert.
Hinweise
Die Memberfunktion gibt do_get_year(first
, last
, , iosbase
, state
) ptm
zurück.
Beispiel
// time_get_get_year.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
#include <time.h>
using namespace std;
int main( )
{
locale loc;
basic_stringstream<char> pszGetF, pszPutF, pszGetI, pszPutI;
ios_base::iostate st = 0;
struct tm t;
memset( &t, 0, sizeof( struct tm ) );
pszGetF << "1928";
pszGetF.imbue( loc );
basic_istream<char>::_Iter i = use_facet
<time_get<char> >
(loc).get_year(basic_istream<char>::_Iter(pszGetF.rdbuf( )),
basic_istream<char>::_Iter(0), pszGetF, st, &t);
if (st & ios_base::failbit)
cout << "time_get::get_year("<< pszGetF.rdbuf( )->str( )<< ") FAILED on char: " << *i << endl;
else
cout << "time_get::get_year("<< pszGetF.rdbuf( )->str( )<< ") ="
<< "\ntm_year: " << t.tm_year
<< endl;
}
time_get::get_year(1928) =
tm_year: 28
time_get::iter_type
Ein Typ, der einen Eingabeiterator beschreibt.
typedef InputIterator iter_type;
Hinweise
Der Type ist ein Synonym für den Vorlagenparameter InputIterator.
time_get::time_get
Der Konstruktor für Objekte des Typs time_get
.
explicit time_get(size_t refs = 0);
Parameter
Refs
Integerwert, der zum Angeben des Speicherverwaltungstyps für das Objekt verwendet wird.
Hinweise
Die möglichen Werte für den Refs-Parameter und deren Bedeutung sind:
0: Die Lebensdauer des Objekts wird von den Gebietsschemas verwaltet, in denen es enthalten ist.
1: Die Lebensdauer des Objekts muss manuell verwaltet werden.
> 1: Diese Werte sind nicht definiert.
Direkte Beispiele hierfür sind nicht möglich, da der Destruktor geschützt ist.
Der Konstruktor initialisiert sein Basisobjekt mit locale::facet(refs
).
Siehe auch
<locale>
time_base-Klasse
Threadsicherheit in der C++-Standardbibliothek