string的格式化输出问题

本文介绍了一种在使用Cstring进行格式化输出64位整数时的常见错误,并给出了正确的解决方法。文章指出,在Windows环境下,正确的格式化标记应该是%lld,而非%d。

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);  

 

这样的输出总是整小时,即总是*小时0分钟,观察了大半天,才发现输出的格式是不对的。

在windows环境下输出64位整数应采用%lld,故输出格式应该写成这样:-

strOut.Format(_T"%lld小时%lld分钟", nTarget/3600, nTarget%3600/60);  

这样就对了,记录一下,以后别再犯这样的错误 

 

 

转载于:https://www.cnblogs.com/MatrixBandit/archive/2011/07/13/2105096.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值