Share via


time_put 클래스

클래스 템플릿은 시간 값을 형식 CharType시퀀스로 변환하는 것을 제어하는 로캘 패싯 역할을 할 수 있는 개체를 설명합니다.

구문

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

매개 변수

Chartype
문자를 인코딩하기 위해 프로그램 내 사용하는 형식

OutputIterator
시간 put 함수가 출력을 쓰는 반복기의 형식입니다.

설명

모든 로캘 패싯과 마찬가지로, 고정 개체 ID에는 초기값 0이 저장되어 있습니다. 저장된 값에 액세스를 처음 시도하면 id에 고유한 양수 값이 저장됩니다.

생성자

생성자 Description
time_put time_put 형식의 개체에 대한 생성자입니다.

Typedef

형식 이름 설명
char_type 로캘에서 사용하는 문자를 설명하기 위해 사용하는 형식입니다.
iter_type 출력 반복기에 대해 설명하는 형식입니다.

멤버 함수

멤버 함수 설명
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
사용되지 않습니다.

_Pt
출력되는 날짜 및 시간 정보입니다.

_Fmt
출력의 형식입니다. 유효한 값은 strftime, wcsftime, _strftime_l, _wcsftime_l를 참조하세요.

_모드
형식의 한정자입니다. 유효한 값은 strftime, wcsftime, _strftime_l, _wcsftime_l를 참조하세요.

Return Value

삽입된 마지막 요소 뒤의 첫 번째 위치에 대한 반복기입니다.

설명

가상으로 보호된 멤버 함수는 개체 * _Pt형식tmnext 저장된 시간 값부터 시작하는 순차적 요소를 생성합니다. 함수는 생성된 출력을 지나 요소를 삽입할 다음 위치를 지정하는 반복기를 반환합니다.

출력은 배열에 strftime일련의 char 요소를 생성하기 위해 _Pt 마지막 인수와 함께 사용되는 것과 동일한 규칙에 의해 생성됩니다. 이러한 char 각 요소는 간단한 일대일 매핑을 통해 형식의 CharType 해당 요소에 매핑되는 것으로 간주됩니다. _Mod 0이면 유효 형식은 "%F"이며 여기서 F는 _Fmt 바뀝니다. 그렇지 않으면 유효 형식은 "%MF"이며, 여기서 M은 _Mod 바뀝니다.

예시

do_put을 호출하는 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 의 문자입니다.

_Pt
출력되는 날짜 및 시간 정보입니다.

_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를 참조하세요.

Return Value

삽입된 마지막 요소 뒤의 첫 번째 위치에 대한 반복기입니다.

설명

첫 번째 멤버 함수는 do_put(, , _Iosbase_Fill, _Pt, _Fmt_Mod)를 반환합니다.next 두 번째 멤버 함수는 백분율(%)이 아닌 * next ++ 간격 [ first, last)의 모든 요소에 복사합니다. 간격 [ , ) 뒤에 C 문자 가 잇는 백분율의 경우 함수는 대신 (next,,_Iosbase, _FillC_Pt, 0)를 계산 = nextdo_put하고 C를 건너뜁니다. lastfirst 그러나 C가 집합 EOQ#의 한정자 문자이고 그 뒤에 C2 간격 [ first, ), last함수가 대신 (next,, _Iosbase, _Fill_Pt, , C2C)를 계산 = nextdo_put하고 지나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: 이러한 값은 정의되지 않습니다.

생성자는 로캘::facet(_Refs)를 사용하여 기본 개체를 초기화합니다.

참고 항목

<로캘>
time_base 클래스
C++ 표준 라이브러리의 스레드 보안