日期打印和扫描
Date printing and scanning
我想从单个 variable/array 格式的文本文件中读取日期:
Thu Feb 05 16:48:30 2015
打印我用过:
fprintf (savegame,"Played Date : %s ",ctime(&time1));
但是要扫描什么?
编辑:
好的。所以我可能说了一些非常错误的事情,所以我会像任务一样重新表述我从学校得到的东西......:
我有一个文本文件,其中包含:
Played Date : Thu Feb 05 16:48:30 2015
Played Date : Thu Jan 01 02:00:00 1970
我想将它们分别放在一个变量中然后删除
Played Date :
打印它们并更新到当前日期。
有什么办法吗?
编辑:我试过:
fscanf (savegame,"Played Date : %s ",ctime(&time1));
但不起作用....
您可以使用 strftime()
打印任何日期时间格式,因此您可能会使用更便于扫描的格式。我想 ctime()
是区域设置相关的,所以在不同的 PC 上有不同的设置 WeekDay 和 Month 可以有不同的拼写(因为语言)。
但是对于你的格式你可以使用(我的变量名应该改变):
res = fscanf(FP,"%3s %3s %d %d:%d:%d %d",dayStr, monStr, &day, &hour, &min, &sec, &year);
然后使用
检查格式
if (res == 7) { .... }
在 POSIX 中,您可以使用 strptime()
将日期解析为 struct tm
.
类型的值
您首先从文件中读取整行文本(fgets()
是最好的选择),然后将其传递给 strptime()
。
如果你有静态的非日期文本,你需要先跳过它。如果它是静态的,您可以将它的长度添加到指向该行的指针,并将其传递给 strptime()
。您也可以将格式字符串中的文本包含到strptime()
,它会被跳过。
我想从单个 variable/array 格式的文本文件中读取日期:
Thu Feb 05 16:48:30 2015
打印我用过:
fprintf (savegame,"Played Date : %s ",ctime(&time1));
但是要扫描什么?
编辑:
好的。所以我可能说了一些非常错误的事情,所以我会像任务一样重新表述我从学校得到的东西......:
我有一个文本文件,其中包含:
Played Date : Thu Feb 05 16:48:30 2015
Played Date : Thu Jan 01 02:00:00 1970
我想将它们分别放在一个变量中然后删除
Played Date :
打印它们并更新到当前日期。
有什么办法吗?
编辑:我试过:
fscanf (savegame,"Played Date : %s ",ctime(&time1));
但不起作用....
您可以使用 strftime()
打印任何日期时间格式,因此您可能会使用更便于扫描的格式。我想 ctime()
是区域设置相关的,所以在不同的 PC 上有不同的设置 WeekDay 和 Month 可以有不同的拼写(因为语言)。
但是对于你的格式你可以使用(我的变量名应该改变):
res = fscanf(FP,"%3s %3s %d %d:%d:%d %d",dayStr, monStr, &day, &hour, &min, &sec, &year);
然后使用
检查格式 if (res == 7) { .... }
在 POSIX 中,您可以使用 strptime()
将日期解析为 struct tm
.
您首先从文件中读取整行文本(fgets()
是最好的选择),然后将其传递给 strptime()
。
如果你有静态的非日期文本,你需要先跳过它。如果它是静态的,您可以将它的长度添加到指向该行的指针,并将其传递给 strptime()
。您也可以将格式字符串中的文本包含到strptime()
,它会被跳过。