SYSTEMTIME ConvertStringToSystemTime(const char *dateTimeString) const
{
SYSTEMTIME systime;
memset(&systime, 0, sizeof(systime));
// Date string should be "dd-MM-yyyy hh:mm:ss:mss"
auto u = sscanf_s(dateTimeString, "%d/%d/%d%d:%d:%d:%d:%d",
&systime.wDay,
&systime.wMonth,
&systime.wYear,
&systime.wHour,
&systime.wMinute,
&systime.wSecond,
&systime.wMilliseconds);
return systime;
}
我的整个问题是我正在从文件中读取日期,该日期存储在字符串变量中,我需要将当前系统时间减去从文件中读取的日期。
我试图通过将字符串转换为Systemtime来进行排序,然后得到区别,但是尝试了此功能后,我不断收到警告错误,我必须修复该错误,但不知道具体如何。 / p>
答案 0 :(得分:0)
在Windows中,WORD被定义为unsigned short
,因此它需要%u
而不是%d
。
答案 1 :(得分:0)
使用%hu代替%d。
说明:SYSTEMTIME个字段的类型为WORD,定义为
typedef unsigned short WORD;
阅读类型unsigned short
要求%hu
,如here所述。