我应该如何使用C将time_t时间戳存储到文件中?

前端之家收集整理的这篇文章主要介绍了我应该如何使用C将time_t时间戳存储到文件中?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
对于我正在编写的小型todo程序,我有这种形式的时间戳
time_t t = time(NULL);

每次输入任务时都会保存,以表示输入的时间.

我想将任务存储到纯文本文件中,以便可以保存和恢复状态.我应该如何将时间戳存储到文本文件中,以及在阅读文本文件后如何将它们恢复到我的程序中?

解决方法

使用gmtime()将time_t转换为struct tm,然后使用strftime()将struct tm转换为纯文本(最好是ISO 8601格式).结果将是可移植的,人类可读的和机器可读的.

要返回time_t,只需将字符串解析回struct tm并使用mktime().

以供参考:

> gmtime
> strftime
> strptime
> mktime

代码示例:

// Converting from time_t to string
time_t t = time(NULL);
struct tm *ptm = gmtime(&t);
char buf[256];
strftime(buf,sizeof buf,"%F %T",ptm);
// buf is now "2015-05-15 22:55:13"

// Converting from string to time_t
char *buf = "2015-05-15 22:55:13";
struct tm tm;
strptime(buf,&tm);
time_t t = mktime(&tm);

猜你在找的C&C++相关文章