c - 防止 getdate_r 填写它不知道的数据

标签 c date parsing time

我正在使用 getdate_r在 C 程序中解析用户输入的时间。我发现的一个问题是它正在用当前时间数据填充我的 struct tm 以查找任何丢失的数据。例如,如果用户输入“Dec 1”,它会正确地将这些值放入 struct tm 中,但是像小时、分钟和秒这样的字段也会被填充并填充为当前时间。

如何防止这种情况发生?我宁愿这些值是 NULL,这样我可以稍后检查这些缺失的字段。当没有输入时间时,我想让小时、分钟和秒最大化(23:59:59),但现在我无法在不手动解析字符串以查看时间数据是否存在的情况下检测到这一点包含在哪种情况下违背了使用 getdate_r 的目的。

最佳答案

该行为符合手册页中的说明。我建议使用预定义的字符串,然后用输入数据覆盖预定义的字符串。预定义的字符串和用户输入的格式应该相同。

例子:

memset(strfmt, <len>, 0). /* or fill with the date required */
memcpy(strfmt, userinput, <len of user input>).

关于c - 防止 getdate_r 填写它不知道的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35543891/

相关文章:

c++ - 对话窗口内的子对话窗口

c - C 中的双向链表 - 链已损坏,不确定在哪里

python - 如何使用Pandas通过特殊标记逐节读取Txt文件?

c - C 中函数参数中的函数

c - 指针、字符和 malloc

javascript - 修改时区新日期javascript

c++ - 在 C++ 的一次运行中返回多个模式的所有匹配的正则表达式库?

C# 扩展方法 - 也接受转义字符的字符串拆分

python - Pandas 的日期时间默认为 1970

events - 重复 "Events"(日历)