struct timeval tms;
char tstr[100];
timerclear(&tms);
gettimeofday(&tms, NULL);
strftime(tstr, 100, "%X", localtime(&tms.tv_sec));
sprintf(time, "%s.%d", tstr, tms.tv_usec/1000);
上面这段code,用于打印带毫秒的时间,但发现有时打印出:
00:07:29.89
有时却可以打印出:
00:07:29.170
为什么有时候毫秒是2位有时候是三位呢?谢谢指点!
我的意思是我用sprintf(time, "%s.%d", tstr, tms.tv_usec/1000);之后发现有的打印出两位有的打印出三位:
00:07:29.89
00:07:29.170
不知道这里是哪里设置的不对?
C语言打印毫秒
答案:2 悬赏:60 手机版
解决时间 2021-01-28 04:34
- 提问者网友:最美的风景
- 2021-01-27 07:32
最佳答案
- 五星知识达人网友:轮獄道
- 2021-01-27 08:04
下面是保留两位的
sprintf(time, "%s.%02d", tstr, tms.tv_usec/100);
下面是保留三位的
sprintf(time, "%s.%03d", tstr, tms.tv_usec/1000);
sprintf(time, "%s.%02d", tstr, tms.tv_usec/100);
下面是保留三位的
sprintf(time, "%s.%03d", tstr, tms.tv_usec/1000);
全部回答
- 1楼网友:白昼之月
- 2021-01-27 09:41
当然有两位也有位啊,毫秒以1000为计数单位,89和170都有可能出现
你如果要始终显示三位的话,你的格式化通配符%d要改成%03d,这样的话就可以打印出00:07:29.089
==========================
1000毫秒等于1秒啊,当然可以出现89和170啊
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯