Sdílet prostřednictvím


time_put – třída

Šablona třídy popisuje objekt, který může sloužit jako omezující vlastnost národního prostředí k řízení převodů časových hodnot na sekvence typu CharType.

Syntaxe

template <class CharType,
    class OutputIterator = ostreambuf_iterator<CharType>>
class time_put : public locale::facet;

Parametry

CharType
Typ používaný v rámci programu ke kódování znaků.

OutputIterator
Typ iterátoru, do kterého časové funkce zapisují svůj výstup.

Poznámky

Stejně jako u omezující vlastnosti národního prostředí má ID statického objektu počáteční uloženou hodnotu nula. První pokus o přístup k uložené hodnotě ukládá jedinečnou kladnou hodnotu v ID.

Konstruktory

Konstruktor Popis
time_put Konstruktor pro objekty typu time_put.

Typedefs

Název typu Popis
char_type Typ, který se používá k popisu znaku používaného národním prostředním.
iter_type Typ, který popisuje výstupní iterátor.

Členské funkce

Členová funkce Popis
do_put Virtuální funkce, která vypíše informace o čase a datu jako posloupnost s CharType.
dát Vypíše informace o čase a datu jako posloupnost s CharType.

Požadavky

Záhlaví:<národní prostředí>

Obor názvů: std

time_put::char_type

Typ, který se používá k popisu znaku používaného národním prostředním.

typedef CharType char_type;

Poznámky

Typ je synonymem pro parametr CharTypešablony .

time_put::d o_put

Virtuální funkce, která vypíše informace o čase a datu jako posloupnost s CharType.

virtual iter_type do_put(
    iter_type next,
    ios_base& _Iosbase,
    const tm* _Pt,
    char _Fmt,
    char _Mod = 0) const;

Parametry

další
Výstupní iterátor, kde má být vložena posloupnost znaků představujících čas a datum.

_Iosbase
Nepoužívá se.

_Pt
Výstupem jsou informace o čase a datu.

_Fmt
Formát výstupu. Platné hodnoty najdete v tématu strftime, wcsftime, _strftime_l, _wcsftime_l .

_Zkratka modulo
Modifikátor formátu. Platné hodnoty najdete v tématu strftime, wcsftime, _strftime_l, _wcsftime_l .

Návratová hodnota

Iterátor na první pozici za posledním vloženým prvkem.

Poznámky

Virtuální chráněná členová funkce generuje sekvenční prvky počínaje next časovými hodnotami uloženými v objektu * _Pt, typu tm. Funkce vrátí iterátor označující další místo pro vložení prvku mimo vygenerovaný výstup.

Výstup je generován stejnými pravidly, která používá , s posledním argumentem strftime_Pt, pro generování řady char prvků do pole. Každý takový char prvek se předpokládá, že mapuje na ekvivalentní prvek typu CharType jednoduchým mapováním 1:1. Pokud se _Mod rovná nule, efektivní formát je %F, kde F se nahradí _Fmt. V opačném případě je efektivní formát %MF, kde M se nahradí _Mod.

Příklad

Podívejte se na příklad pro vložení, který volá do_put.

time_put::iter_type

Typ, který popisuje výstupní iterátor.

typedef OutputIterator iter_type;

Poznámky

Typ je synonymem pro parametr OutputIteratoršablony .

time_put::p ut

Vypíše informace o čase a datu jako posloupnost 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

další
Výstupní iterátor, kde má být vložena posloupnost znaků představujících čas a datum.

_Iosbase
Nepoužívá se.

_Vyplnit
Znak typu CharType použitý pro mezery.

_Pt
Výstupem jsou informace o čase a datu.

_Fmt
Formát výstupu. Platné hodnoty najdete v tématu strftime, wcsftime, _strftime_l, _wcsftime_l .

_Zkratka modulo
Modifikátor formátu. Platné hodnoty najdete v tématu strftime, wcsftime, _strftime_l, _wcsftime_l .

první
Začátek formátovacího řetězce pro výstup. Platné hodnoty najdete v tématu strftime, wcsftime, _strftime_l, _wcsftime_l .

poslední
Konec formátovacího řetězce pro výstup. Platné hodnoty najdete v tématu strftime, wcsftime, _strftime_l, _wcsftime_l .

Návratová hodnota

Iterátor na první pozici za posledním vloženým prvkem.

Poznámky

První členová funkce vrátí do_put(next, _Iosbase, _Fill, _Pt, _Fmt, ). _Mod Druhá členová funkce zkopíruje do * next ++ libovolný prvek v intervalu [ , firstlast) jiný než procento (%). Pro procento následované znakem C v intervalu [ first, last), funkce místo toho vyhodnotído_put = next ( next, _Iosbase, , _Fill, , _PtC, 0) a přeskočí za C. Pokud je však jazyk C kvalifikátorem znak ze sady EOQ#, za nímž následuje znak C2 v intervalu [ first, ), lastfunkce místo toho vyhodnotí = nextdo_put ( next, , _Iosbase, _Fill, _Pt, , C2C) a přeskočí minulost .C2

Příklad

// 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 pro objekty typu time_put.

explicit time_put(size_t _Refs = 0);

Parametry

_Refs
Celočíselná hodnota použitá k určení typu správy paměti pro objekt.

Poznámky

Možné hodnoty pro parametr _Refs a jejich významnost jsou:

  • 0: Životnost objektu je spravována národními prostředími, které ho obsahují.

  • 1: Životnost objektu musí být spravována ručně.

  • > 1: Tyto hodnoty nejsou definovány.

Konstruktor inicializuje svůj základní objekt s locale::facet(_Refs).

Viz také

<locale>
time_base – třída
Bezpečný přístup z více vláken ve standardní knihovně C++