strOut.Format(_T"%d小时%d分钟", nTarget/3600, nTarget%3600/60); strOut.Format(_T"%d小时%d分钟", nTarget/3600, nTarget%3600/60); 今天在工作中处理cstring格式化输出的时候出现这么一个问题:
INT64 nTarget;
Cstring strOut;
strOut.Format(_T"%d小时%d分钟", nTarget/3600, nTarget%3600/60);
Cstring strOut;
strOut.Format(_T"%d小时%d分钟", nTarget/3600, nTarget%3600/60);
这样的输出总是整小时,即总是*小时0分钟,观察了大半天,才发现输出的格式是不对的。
在windows环境下输出64位整数应采用%lld,故输出格式应该写成这样:-
strOut.Format(_T"%lld小时%lld分钟", nTarget/3600, nTarget%3600/60);
这样就对了,记录一下,以后别再犯这样的错误