Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Szablon klasy opisuje obiekt, który może służyć jako aspekt ustawień regionalnych do kontrolowania konwersji wartości czasu na sekwencje typu CharType.
Składnia
template <class CharType,
class OutputIterator = ostreambuf_iterator<CharType>>
class time_put : public locale::facet;
Parametry
Typ char
Typ używany w programie do kodowania znaków.
OutputIterator
Typ iteratora, do którego funkcje czasu put zapisują swoje dane wyjściowe.
Uwagi
Podobnie jak w przypadku dowolnego zestawu reguł ustawień regionalnych, identyfikator obiektu statycznego ma początkową przechowywaną wartość zero. Pierwsza próba uzyskania dostępu do przechowywanej wartości przechowuje unikatową wartość dodatnią w identyfikatorze.
Konstruktory
| Konstruktor | opis |
|---|---|
| time_put | Konstruktor dla obiektów typu time_put. |
Definicje typów
| Nazwa typu | opis |
|---|---|
| char_type | Typ opisujący znak używany przez ustawienie regionalne. |
| iter_type | Typ, który opisuje iterator danych wyjściowych. |
Funkcje składowe
| Funkcja składowa | opis |
|---|---|
| do_put | Funkcja wirtualna, która generuje informacje o godzinie i dacie jako sekwencję CharTypes. |
| kłaść | Generuje informacje o godzinie i dacie jako sekwencję s CharType. |
Wymagania
Nagłówek:<ustawienia regionalne>
Przestrzeń nazw: std
time_put::char_type
Typ opisujący znak używany przez ustawienie regionalne.
typedef CharType char_type;
Uwagi
Typ jest synonimem parametru CharTypeszablonu .
time_put::d o_put
Funkcja wirtualna, która generuje informacje o godzinie i dacie jako sekwencję CharTypes.
virtual iter_type do_put(
iter_type next,
ios_base& _Iosbase,
const tm* _Pt,
char _Fmt,
char _Mod = 0) const;
Parametry
następny
Iterator danych wyjściowych, w którym należy wstawić sekwencję znaków reprezentujących godzinę i datę.
_Iosbase
Nieużywany.
_Pt
Dane wyjściowe informacji o godzinie i dacie.
_Fmt
Format danych wyjściowych. Aby uzyskać prawidłowe wartości, zobacz strftime, wcsftime, _strftime_l, _wcsftime_l .
_Mod
Modyfikator formatu. Aby uzyskać prawidłowe wartości, zobacz strftime, wcsftime, _strftime_l, _wcsftime_l .
Wartość zwracana
Iterator do pierwszej pozycji po wstawieniu ostatniego elementu.
Uwagi
Wirtualna chroniona funkcja składowa generuje sekwencyjne elementy rozpoczynające się next od wartości czasu przechowywanych w obiekcie * _Pt, typu tm. Funkcja zwraca iterator wyznaczający następne miejsce, aby wstawić element poza wygenerowanymi danymi wyjściowymi.
Dane wyjściowe są generowane przez te same reguły używane przez strftimeelement , z ostatnim argumentem _Pt do generowania serii char elementów w tablicy. Zakłada się, że każdy taki char element jest mapowany na równoważny element typu CharType za pomocą prostego mapowania jeden do jednego. Jeśli _Mod równa się zero, efektywny format to "%F", gdzie F jest zastępowany przez _Fmt. W przeciwnym razie efektywny format to "%MF", gdzie M jest zastępowany przez _Mod.
Przykład
Zobacz przykład put, który wywołuje metodę do_put.
time_put::iter_type
Typ, który opisuje iterator danych wyjściowych.
typedef OutputIterator iter_type;
Uwagi
Typ jest synonimem parametru OutputIteratorszablonu .
time_put::p ut
Generuje informacje o godzinie i dacie jako sekwencję s CharType.
iter_type put(iter_type next,
ios_base& _Iosbase,
char_type _Fill,
const tm* _Pt,
char _Fmt,
char _Mod = 0) const;
iter_type put(iter_type next,
ios_base& _Iosbase,
char_type _Fill,
const tm* _Pt,
const CharType* first,
const CharType* last) const;
Parametry
następny
Iterator danych wyjściowych, w którym należy wstawić sekwencję znaków reprezentujących godzinę i datę.
_Iosbase
Nieużywany.
_Wypełnić
Znak typu CharType używany do odstępów.
_Pt
Dane wyjściowe informacji o godzinie i dacie.
_Fmt
Format danych wyjściowych. Aby uzyskać prawidłowe wartości, zobacz strftime, wcsftime, _strftime_l, _wcsftime_l .
_Mod
Modyfikator formatu. Aby uzyskać prawidłowe wartości, zobacz strftime, wcsftime, _strftime_l, _wcsftime_l .
pierwszy
Początek ciągu formatowania danych wyjściowych. Aby uzyskać prawidłowe wartości, zobacz strftime, wcsftime, _strftime_l, _wcsftime_l .
ostatni
Koniec ciągu formatowania danych wyjściowych. Aby uzyskać prawidłowe wartości, zobacz strftime, wcsftime, _strftime_l, _wcsftime_l .
Wartość zwracana
Iterator do pierwszej pozycji po wstawieniu ostatniego elementu.
Uwagi
Pierwsza funkcja składowa zwraca do_put(next, _Iosbase, _Fill, _Pt, _Fmt). _Mod Druga funkcja składowa kopiuje do * next ++ dowolny element w interwale [ first, last) inny niż procent (%). Dla procentu, po którym następuje znak C w interwale [ first, last), funkcja zamiast tego obliczanext = do_put (next, _Iosbase, , _Fill, _Pt, C, 0) i pomija przeszłości C. Jeśli jednak C jest znakiem kwalifikatora z zestawu EOQ#, a następnie znakiem C2 w interwale [ first, last), funkcja zamiast tego oblicza next = do_put(next, _Iosbase, _Fill_Pt, , , C2C) i pomija przeszłości .C2
Przykład
// time_put_put.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
#include <time.h>
using namespace std;
int main( )
{
locale loc;
basic_stringstream<char> pszPutI;
ios_base::iostate st = 0;
struct tm t;
memset( &t, 0, sizeof( struct tm ) );
t.tm_hour = 5;
t.tm_min = 30;
t.tm_sec = 40;
t.tm_year = 00;
t.tm_mday = 4;
t.tm_mon = 6;
pszPutI.imbue( loc );
char *pattern = "x: %X %x";
use_facet <time_put <char> >
(loc).put(basic_ostream<char>::_Iter(pszPutI.rdbuf( )),
pszPutI, ' ', &t, pattern, pattern+strlen(pattern));
cout << "num_put( ) = " << pszPutI.rdbuf( )->str( ) << endl;
char strftimebuf[255];
strftime(&strftimebuf[0], 255, pattern, &t);
cout << "strftime( ) = " << &strftimebuf[0] << endl;
}
num_put( ) = x: 05:30:40 07/04/00
strftime( ) = x: 05:30:40 07/04/00
time_put::time_put
Konstruktor dla obiektów typu time_put.
explicit time_put(size_t _Refs = 0);
Parametry
_Bibl.
Wartość całkowita używana do określania typu zarządzania pamięcią dla obiektu.
Uwagi
Możliwe wartości parametru _Refs i ich istotności to:
0: Okres istnienia obiektu jest zarządzany przez ustawienia regionalne, które go zawierają.
1: Okres istnienia obiektu musi być zarządzany ręcznie.
> 1: Te wartości nie są zdefiniowane.
Konstruktor inicjuje obiekt podstawowy za pomocą ustawień regionalnych::facet(_Refs).
Zobacz też
<ustawienia regionalne>
time_base, klasa
Bezpieczeństwo wątku w standardowej bibliotece C++