Поделиться через


Класс time_put

Шаблон класса описывает объект, который может служить аспектом языкового стандарта для управления преобразованием значений времени в последовательности типов CharType.

Синтаксис

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

Параметры

CharType
Тип, используемый внутри программы для кодирования символов.

OutputIterator
Тип итератора, в который функции записи времени записывают свои выходные данные.

Замечания

Как и в случае любого другого аспекта языкового стандарта, начальное сохраненное значение статического идентификатора объекта равно нулю. Первая попытка получить доступ к сохраненному значению сохранит уникальное положительное значение в id.

Конструкторы

Конструктор Description
time_put Конструктор для объектов типа time_put.

Определения типов

Введите имя Description
char_type Тип, используемый для описания символа, используемого языковым стандартом.
iter_type Тип, который описывает итератор вывода.

Функции элементов

Функция-член Description
do_put Виртуальная функция, выводящая информацию о времени и дате в виде последовательности CharType.
put Выводит информацию о времени и дате в виде последовательности CharType.

Требования

Заголовок:<языковой стандарт>

Пространство имен: std

time_put::char_type

Тип, используемый для описания символа, используемого языковым стандартом.

typedef CharType char_type;

Замечания

Этот тип является синонимом для параметра шаблона CharType.

time_put::d o_put

Виртуальная функция, выводящая информацию о времени и дате в виде последовательности CharType.

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

Параметры

next
Итератор вывода, куда необходимо вставить последовательность символов, представляющих дату и время.

_Iosbase
Не используется.

_Точка
Выводимые сведения о дате и времени.

_Fmt
Формат вывода См. допустимые значения в разделе strftime, wcsftime, _strftime_l, _wcsftime_l.

_Модуль
Модификатор для формата. См. допустимые значения в разделе strftime, wcsftime, _strftime_l, _wcsftime_l.

Возвращаемое значение

Итератор для первой позиции после последнего вставленного элемента.

Замечания

Виртуальная защищенная функция-член создает последовательные элементы, начиная с next значений времени, хранящихся в объекте * _Ptтипа tm. Функция возвращает итератор, обозначающий следующую позицию для вставки элемента после сформированного вывода.

Выходные данные создаются теми же правилами, которые используются strftimeв последнем аргументе _Pt для создания ряда char элементов в массиве. char Предполагается, что каждый такой элемент сопоставляется с эквивалентным элементом типа CharType простым сопоставлением "один к одному". Если _Mod равно нулю, то эффективный формат — "%F", где F заменяется _Fmt. В противном случае эффективный формат — "%MF", где M заменяется _Mod.

Пример

См. пример для put, который вызывает do_put.

time_put::iter_type

Тип, который описывает итератор вывода.

typedef OutputIterator iter_type;

Замечания

Этот тип является синонимом для параметра шаблона OutputIterator.

time_put::p ut

Выводит информацию о времени и дате в виде последовательности 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;

Параметры

next
Итератор вывода, куда необходимо вставить последовательность символов, представляющих дату и время.

_Iosbase
Не используется.

_Заполнять
Символ типа CharType , используемого для интервала.

_Точка
Выводимые сведения о дате и времени.

_Fmt
Формат вывода См. допустимые значения в разделе strftime, wcsftime, _strftime_l, _wcsftime_l.

_Модуль
Модификатор для формата. См. допустимые значения в разделе strftime, wcsftime, _strftime_l, _wcsftime_l.

first
Начало строки форматирования для выходных данных. См. допустимые значения в разделе strftime, wcsftime, _strftime_l, _wcsftime_l.

last
Конец строки форматирования для выходных данных. См. допустимые значения в разделе strftime, wcsftime, _strftime_l, _wcsftime_l.

Возвращаемое значение

Итератор для первой позиции после последнего вставленного элемента.

Замечания

Первая функция-член возвращает do_put(next, , _Iosbase_Fill, _Pt, _Fmt). _Mod Вторая функция-член копирует в * next ++ любой элемент интервала [ first, , lastкроме процента (%). Для процента, за которым следует символ C в интервале [ first, ), lastфункция вместо этого вычисляет next = do_put( next, , _Iosbase_Fill_PtC, 0) и пропускает мимо C. Если, однако, C является символом квалификатора из набора EOQ#, за которым следует символ C2 в интервале [ first, ), lastфункция вместо этого вычисляетdo_putnext = ( next, _Iosbase_Fill_Pt, C2C) и пропускает прошлое.C2

Пример

// 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

Конструктор для объектов типа time_put.

explicit time_put(size_t _Refs = 0);

Параметры

_Refs
Целочисленное значение, используемое для указания типа управления памятью для объекта.

Замечания

Возможные значения параметра _Refs и их значение:

  • 0: время существования объекта управляется языковыми стандартами, которые его содержат.

  • 1: время существования объекта должно управляться вручную.

  • > 1. Эти значения не определены.

Конструктор инициализирует базовый объект с помощью языкового стандарта::facet(_Refs).

См. также

<локаль>
Класс time_base
Потокобезопасность в стандартной библиотеке C++