C语言 用全局变量编程模拟显示一个数字式时钟
参考程序:#include<stdio.h>inthour,minute,second;voidupdate(){second++;if(second==60){seco...
参考程序:
#include <stdio.h>
int hour,minute,second;
void update()
{
second++;
if(second==60)
{
second=0;
minute++;
}
if(minute==60)
{
minute=0;
hour++;
}
if(hour==24)
{
hour=0;
}
}
void display()
{
printf("%2d:%2d:%2d\r",hour,minute,second);
}
void delay()
{
int t;
for(t=0;t<100000000;t++);
}
int main()
{
int i;
hour=minute=second=0;
for(i=0;i<1000000;i++)
{
update();
display();
delay();
}
return 0;
}
手里只有一本学习指导。想问下
void display()
{
printf("%2d:%2d:%2d\r",hour,minute,second);
}
void delay()
{
int t;
for(t=0;t<100000000;t++);
}
printf("%2d:%2d:%2d\r",hour,minute,second);因为有'\r',输出后光标不是应该立刻退格到最左,这样不就抹去了已经输出的内容吗,后面的延时代码执行不就行显示为空吗?想请教这样想错在哪里? 展开
#include <stdio.h>
int hour,minute,second;
void update()
{
second++;
if(second==60)
{
second=0;
minute++;
}
if(minute==60)
{
minute=0;
hour++;
}
if(hour==24)
{
hour=0;
}
}
void display()
{
printf("%2d:%2d:%2d\r",hour,minute,second);
}
void delay()
{
int t;
for(t=0;t<100000000;t++);
}
int main()
{
int i;
hour=minute=second=0;
for(i=0;i<1000000;i++)
{
update();
display();
delay();
}
return 0;
}
手里只有一本学习指导。想问下
void display()
{
printf("%2d:%2d:%2d\r",hour,minute,second);
}
void delay()
{
int t;
for(t=0;t<100000000;t++);
}
printf("%2d:%2d:%2d\r",hour,minute,second);因为有'\r',输出后光标不是应该立刻退格到最左,这样不就抹去了已经输出的内容吗,后面的延时代码执行不就行显示为空吗?想请教这样想错在哪里? 展开
2个回答
展开全部
肯定是先显示出打印的内容,然后在退格啊,然后再显示下一个,所以你就可以看见了啊
更多追问追答
追问
退格后不是延时吗,此时延时不应是显示为空吗因为已经退格了?
追答
退格之后,还可以继续输出啊,光标就会向后走啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
\r 表示的是回车(不换行)啊,\b才表示退格
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询