Udostępnij za pośrednictwem


time_put — Klasa

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

Chartype
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.

Typedefs

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.
Umieścić 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ępnego
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ępnego
Iterator danych wyjściowych, w którym należy wstawić sekwencję znaków reprezentujących godzinę i datę.

_Iosbase
Nieużywany.

_Wypełnienia
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 .

Pierwszym
Początek ciągu formatowania danych wyjściowych. Aby uzyskać prawidłowe wartości, zobacz strftime, wcsftime, _strftime_l, _wcsftime_l .

Ostatnio
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 obliczado_putnext = ( 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_Pt_FillC2C) 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ż

<Ustawień regionalnych>
time_base, klasa
Bezpieczeństwo wątku w standardowej bibliotece C++