printf实现动态显示

(1)显示百分比,代码如下:

#include <stdio.h> int main() { int i; for (i=0; i<20; i++) { printf("/rxiaoshe [%d%%]", (i+1)*5); fflush(stdout); sleep(1); } printf("/n"); return 0; }   

运行效果为:

xiaoshe     [75%]

(2)'.'的增长,代码如下

#include <stdio.h> int main() { int i; int k; printf("xiaoshe"); for (i=0; i<20; i++) { printf("."); fflush(stdout); sleep(1); } printf("OK/n"); return 0; }

运行效果为:

xiaoshe....

(3)符号旋转,代码如下:

#include <stdio.h> int main() { int i; int k; //printf("xiaoshe"); for (i=0; i<20; i++) { k = i % 4; if (k == 0) printf("/rxiaoshe |"); if (k == 1) printf("/rxiaoshe /"); if (k == 2) printf("/rxiaoshe -"); if (k == 3) printf("/rxiaoshe //"); fflush(stdout); sleep(1); } printf("OK/n"); return 0; }

运行效果为:

xiaoshe /

 

简单说明:

/r:回到行首打印结果,覆盖原来行

printf先把结果发送到缓存,当遇到/n、强制刷新缓存(fflush)或者程序结束时,将结果显示到屏幕上。

因此上面的代码,结合了/r和fflush而成(/n明显不行)。

你可能感兴趣的:(printf实现动态显示)