概述:
我们在网上抽奖时会发现,当抽号码的时候号码会连续的跳动然后停止,其实在C语言中可以使用一个很简便的方法也可以实现字符的跳动。
分析:
先找寻事物的本质,字符跳动其实就是 显示出来 消失 显示出来这样循环,对应于C语言编写就是printf打印然后删掉再打印就实现跳到
实例:
for(i=0;i<10;i++){//循环多少次
k=RandomInteger(0,num-1);//随机函数抽取数字
printf("%-10s",name[k]);//输出抽取数字对应的名字
fflush(stdout);//强制输出缓冲区的函数
sleep_ms(100);//暂停一小段时间
printf("\r");//删除本行的字符
}
用到的知识:
1.printf是行缓冲,行缓冲有刷新机制,fflush(stdout);是手动刷新缓冲区
2.C语言转义字符的含义
3.sleep函数在linux环境下以秒为单位,所以需要转换毫秒为单位的函数
static void sleep_ms(unsigned int secs) //延时函数sleep,因linux以秒为单位
{
struct timeval tval;
tval.tv_sec=secs/1000;
tval.tv_usec=(secs*1000)%1000000;
select(0,NULL,NULL,NULL,&tval);
}