共用方式為


time_put 類別

類別範本描述可作為地區設定 Facet 的物件,以控制時間值轉換成 型 CharType別序列的轉換。

語法

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

參數

CharType
用於程式內部字元編碼的類型。

OutputIterator
時間 put 函式將其輸出寫入其中的迭代器類型。

備註

如同所有地區設定 facet,靜態物件識別碼有初始儲存值零。 第一次嘗試存取它的儲存值時,會在 id 中儲存一個唯一的正值。

建構函式

建構函式 描述
time_put time_put 類型物件的建構函式。

Typedefs

類型名稱 描述
char_type 類型,用來描述由地區設定使用的字元。
iter_type 描述輸出迭代器的類型。

成員函式

成員函數 描述
do_put 虛擬函式,會輸出日期和時間資訊做為 CharType 的序列。
put 輸出日期和時間資訊做為 CharType 的序列。

需求

Header:<locale>

命名空間: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;

參數

下一步
輸出迭代器,其中的字元序列代表插入的日期與時間。

_Iosbase
未使用的。

_鉑
輸出的日期和時間資訊。

_Fmt
輸出的格式。 如需有效值,請參閱 strftime、wcsftime、_strftime_l、_wcsftime_l

_國防部
格式修飾詞。 如需有效值,請參閱 strftime、wcsftime、_strftime_l、_wcsftime_l

傳回值

插入最後一個元素之後第一個位置的迭代器。

備註

虛擬受保護的成員函式會從儲存在 類型tm的物件 * _Pt中的時間值開始next產生循序專案。 此函式會傳回迭代器,此迭代器指定在所產生的輸出後下一個要插入元素的位置。

輸出是由 所使用的 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;

參數

下一步
輸出迭代器,其中的字元序列代表插入的日期與時間。

_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_putnext、、_Fill_Iosbase_Pt_Fmt_Mod。 第二個成員函式會複製到間隔 [ 、 last以外的任何元素 * firstnext ++,而不是百分比 。。 針對間隔 [ 中的字元 C 後面百分比,last函式會改為評估 next = do_putnext、、_Iosbase_Pt_Fill、C、0) 並略過 C。first不過,如果 C 是集合 EOQ# 中的限定符字元,後面接著 interval [ firstlast中的字元C2,則函式會改為評估 = nextdo_putnext_Iosbase、、、_Fill_PtC2C) 並略過過去。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 參數的可能值及其重要性如下:

  • 0:物件的存留期由包含該物件的地區設定來管理。

  • 1:物件的存留期必須以手動方式管理。

  • > 1:未定義這些值。

建構函式會使用 locale::facet_Refs)初始化其基底物件。

另請參閱

<地區設定>
time_base 類別
C++ 標準程式庫中的執行緒安全