首页 > wsprintf函数行为异常

wsprintf函数行为异常

像这样的代码:

wsprintf(wsTime, TEXT("%.2d:%.2d:%.2d"), (tNow - tStart) / 3600, ((tNow - tStart) / 60) % 60, (tNow - tStart) % 60);

其中的wsTime变量是一个WCHAR类型的数组,长度为100。tNowtStart都是time_t
类型的数据,用来比对当前时间和开始时间,且tNow是每隔一秒就会更新的,但是以上代码的执行结果永远都是00:00:00,也就是数字不会递增。

但是如果将(tNow - tStart) % 60换到前面,也就是这样:

wsprintf(wsTime, TEXT("%.2d:%.2d:%.2d"), (tNow - tStart) % 60, (tNow - tStart) / 3600, ((tNow - tStart) / 60) % 60);

就能够正常地输出01:00:00,即正常地递增。
不知道为何会有这么奇怪的问题,求各路大神指导……
开发环境是VS2013。

【热门文章】
【热门文章】