此函式首先通過構造一個型別為 basic_istream::sentry
的物件來存取輸入序列。
然後(如果計算 sentry
物件為 true
),它呼叫 time_get::get
(使用流的所選區域設定)來執行提取和解析操作,並相應地調整流的內部狀態標誌。
最後,它在返回之前銷毀 sentry
物件。
它用於從應用中輸入流的字元中提取字元,並將它們解析為引數fmt
中指定的時間和日期資訊。獲得的資料儲存在tmb
指向的struct tm
物件。
以下是 std::get_time
函式的宣告。
template <class charT>
/*unspecified*/ get_time (struct tm* tmb, const charT* fmt);
tmb
? 指向struct tm
型別的物件的指標,其中儲存提取的時間和日期資訊。struct tm
是在ctime>頭中定義的類。
fmt
? time_get::get
使用 C字串作為格式字串(見 time_get::get
)。 charT
是c字串中的字元型別。
在下面的例子中解釋 get_time()
函式的用法。
#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;
}