printf固定一行打印倒计时的实现

主要是依赖函数:printf("\b") 退格格式符

fflush(stdout),刷新标准输出缓冲区,把输出缓冲区里的东西打印到标准输出设备上

示例:

 1 #include
 2 #include 
 3 #include 
 4 #include 
 5 
 6 
 7 
 8 int main()
 9 {
10     int i;
11 
12 #if 1
13     int bootdelay = 3;
14     printf("Hit any key to stop autoboot: %2ds ", bootdelay);    //"%2ds " 2byte数字 1字节's' 1字节空格
15     fflush(stdout);
16     while(bootdelay > 0)
17     {
18         Sleep(1000);
19         --bootdelay;
20         printf("\b\b\b\b%2ds ", bootdelay);    //因格式占4byte,2byte数字、1字节‘s’、1字节空格,所以需要4个'\b' backspace 退格非删除
21         fflush(stdout);
22     }
23 #endif
24     printf("\n");
25     
26     printf(".................\n");
27     for(i = 5; i > -1; i--)
28     {
29         if(i == 5)
30         {
31             printf("Wait %ds", i);
32             fflush(stdout);
33             Sleep(1000);
34         }
35         else
36         {
37             printf("\b\b%ds", i);
38             fflush(stdout);
39             Sleep(1000);
40         }
41     }
42     
43     printf("\n");    
44     
45     return 0;
46 }

 

你可能感兴趣的:(printf固定一行打印倒计时的实现)