不使用chrono库实现cin读取时间
时间: 2023-12-06 13:02:02 浏览: 118
如果你不想使用C++标准库中的chrono库,也可以通过多次调用cin来分别读取年、月、日、时、分、秒等时间信息,然后使用C的时间处理函数将其转换为time_t类型。下面是一个例子:
```c++
#include <iostream>
#include <ctime>
using namespace std;
int main() {
int year, month, day, hour, minute, second;
char separator;
cout << "Enter current time (YYYY/MM/DD hh:mm:ss): ";
cin >> year >> separator >> month >> separator >> day >> hour >> separator >> minute >> separator >> second;
tm local_tm;
local_tm.tm_year = year - 1900;
local_tm.tm_mon = month - 1;
local_tm.tm_mday = day;
local_tm.tm_hour = hour;
local_tm.tm_min = minute;
local_tm.tm_sec = second;
time_t tt = mktime(&local_tm);
cout << "Current time is: " << ctime(&tt);
return 0;
}
```
在这个例子中,我们先用cin读取了当前时间,然后使用tm结构体存储时间信息,最后使用mktime函数将tm结构体转换为time_t类型。注意,这里的时间格式是"YYYY/MM/DD hh:mm:ss",其中"/"和":"是分隔符,可以根据实际需要自行修改。此外,需要注意的是,mktime函数返回的时间是本地时间,而不是UTC时间。如果需要获得UTC时间,可以使用gmtime函数。
阅读全文