下面的代码将当前时间显示并存储到一个文本文件中,我如何从文件中读取它?
void main()
{
char p[4];
char t[4];
int one;
int two;
FILE * fp;
time_t ltime; /* calendar time */
ltime=time(NULL); /* get current cal time */
printf("%s",asctime( localtime(<ime) ) );
getch();
fp=fopen("testtime.txt","w+");
fprintf(fp,asctime( localtime(<ime) ) );
getch();
fclose(fp);
}
asctime()
来自C规范。
char *asctime(const struct tm *timeptr) {
static const char wday_name[7][3] = { "Sun", "Mon", "Tue", "Wed", "Thu",
"Fri", "Sat" };
static const char mon_name[12][3] = { "Jan", "Feb", "Mar", "Apr", "May",
"Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
static char result[26];
sprintf(result, "%.3s %.3s%3d %.2d:%.2d:%.2d %dn",
wday_name[timeptr->tm_wday], mon_name[timeptr->tm_mon],
timeptr->tm_mday, timeptr->tm_hour, timeptr->tm_min, timeptr->tm_sec,
1900 + timeptr->tm_year);
return result;
}
把它倒过来。
#include<time.h>
// 0:Success, 1:failure
int un_asctime(struct tm *timeptr, FILE *fp) {
static const char wday_name[7][4] = { "Sun", "Mon", "Tue", "Wed", "Thu",
"Fri", "Sat" };
static const char mon_name[12][4] = { "Jan", "Feb", "Mar", "Apr", "May",
"Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
char wday[4];
char mon[4];
int n;
char buffer[100];
if (fgets(buffer, sizeof buffer, fp) == NULL) return 0;
int cnt = sscanf(buffer, "%3s%3s%d%d:%d:%d%d%n", wday, mon,
&timeptr->tm_mday, &timeptr->tm_hour,
&timeptr->tm_min, &timeptr->tm_sec,
&timeptr->tm_year, &n);
if (cnt != 7 || src[n] != 'n' || src[n + 1] != ' '
) return 1;
timeptr->tm_year -= 1900;
timeptr->tm_isdst = -1; // unknown DST setting
for (timeptr->tm_wday = 0; timeptr->tm_wday < 7; timeptr->tm_wday++) {
if (strcmp(wday, wday_name[timeptr->tm_wday]) == 0)
break;
}
for (timeptr->tm_mon = 0; timeptr->tm_mon < 12; timeptr->tm_mon++) {
if (strcmp(mon, mon_name[timeptr->tm_mon]) == 0)
break;
}
if (timeptr->tm_wday == 7 || timeptr->tm_mon == 12)
return 1;
timeptr->tm_yday = 0; // TBD
return 0;
}