此函數(shù)首先通過構(gòu)造一個(gè)類型為 basic_istream::sentry 的對(duì)象來訪問輸入序列。
然后(如果計(jì)算 sentry 對(duì)象為 true),它調(diào)用 time_get::get(使用流的所選區(qū)域設(shè)置)來執(zhí)行提取和解析操作,并相應(yīng)地調(diào)整流的內(nèi)部狀態(tài)標(biāo)志。
最后,它在返回之前銷毀 sentry 對(duì)象。
它用于從應(yīng)用中輸入流的字符中提取字符,并將它們解析為參數(shù)fmt中指定的時(shí)間和日期信息。獲得的數(shù)據(jù)存儲(chǔ)在tmb指向的struct tm對(duì)象。
以下是 std::get_time 函數(shù)的聲明。
template <class charT>
/*unspecified*/ get_time (struct tm* tmb, const charT* fmt);
tmb ? 指向struct tm類型的對(duì)象的指針,其中存儲(chǔ)提取的時(shí)間和日期信息。struct tm是在ctime>頭中定義的類。
fmt ? time_get::get使用 C字符串作為格式字符串(見 time_get::get)。 charT是c字符串中的字符類型。
在下面的例子中解釋 get_time() 函數(shù)的用法。
#include <iostream>
#include <iomanip>
#include <ctime>
int main () {
struct std::tm when;
std::cout << "Please, enter the time: ";
std::cin >> std::get_time(&when,"%R");
if (std::cin.fail()) std::cout << "Error reading time/n";
else {
std::cout << "The time entered is: ";
std::cout << when.tm_hour << " hours and " << when.tm_min << " minutes/n";
}
return 0;
}