C语言怎么实现每秒刷新一次后重新输出

printf("%s\n",__TIME__);让它每秒刷新一次后显示新的时间,请问怎么实现啊,谢谢!... printf ("%s \n",__TIME__);让它每秒刷新一次后显示新的时间,请问怎么实现啊,谢谢! 展开
 我来答
zyl0462
推荐于2017-09-19 · TA获得超过1082个赞
知道小有建树答主
回答量:433
采纳率:75%
帮助的人:331万
展开全部
由于c语言标准库函数,没有Sleep延时程序,需要自己编写,主要通过循环判断difftime函数返回的时间差来实现延时,具体代码如下,
#include <stdio.h>
#include <time.h>
//延时程序
void sleep(int s)
{
time_t tmp1=time(NULL);
time_t tmp2=tmp1;
while(difftime(tmp2,tmp1)<s)//延时s秒后结束
{
tmp2=time(NULL);
}
}
int main(int argc, char *argv[])
{
int i=1;
while(i)
{
printf ("%d : %s \n",i++,__TIME__);//打印i及程序编译时间
sleep(1);
system("cls"); //清屏
}
return 0;
}

函数double difftime(time_t time2, time_t time1);返回两个time_t型变量之间的时间间隔,即 计算两个时刻之间的时间差。time1计时开始时间,time2计时结束时间,不断更新time2直至(time2-time1)为所需要的延时时间即可。
cpucash
推荐于2017-10-10 · TA获得超过1584个赞
知道小有建树答主
回答量:1457
采纳率:66%
帮助的人:970万
展开全部
用循环,循环体内容加上
sleep(1000); 这个是休息1000毫秒,也就是1秒
system("cls"); 这个是调用dos命令清屏
下面就是需要打印的东西
追问

非常感谢,请问源代码是这样的吗?刷新时刷新了,但不能刷新后清屏重新显示

追答
也许是sleep的时间设的太长,你调整一下sleep里面的数字
估计是sleep不是以毫秒来计算时间的,是一秒来计算时间的
你用sleep(1)试试

#include "stdio.h"
#include "conio.h"
main()
{
int i;
for(i=0;i<100;i++)
{
system("cls");
printf("%d",i); 具体打印内容,在printf这里设计,可以做一个子函数来用

sleep(1);
}
system("pause");
}
我用这个可以0~99一秒显示一个,慢慢变化,呵呵
具体打印内容,在printf这里设计,可以做一个子函数来用
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sg_zeng
2013-01-13 · TA获得超过160个赞
知道答主
回答量:177
采纳率:0%
帮助的人:126万
展开全部
设置一个定时器,然后定时刷新了
追问
请问怎么设置啊,谢谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
认不倒你
2013-01-13 · TA获得超过666个赞
知道小有建树答主
回答量:820
采纳率:50%
帮助的人:363万
展开全部
#include <windows.h>
Sleep(1000);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
千江月success
2013-01-13 · TA获得超过827个赞
知道小有建树答主
回答量:1031
采纳率:100%
帮助的人:913万
展开全部
定时器嘛。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式