在有些需要长时间等待的程序,有个进度条是必须的。确保程序正在运行,又知道进度情况。
C语言实现精度条的关键是“\r”,也就是回车键,回车键会使得输出从头开始。只使用回车键,而不使用换行符,就可以实现在同一行重复打印。 但是由于很多情况,不使用换行,无法输出stdout的缓冲,导致无法输出相应的信息,从而需要加上刷新缓存函数。
实现的代码如下:
1 #include <stdio.h>
2 #include <unistd.h>
3
4 int main()
5 {
6 printf("[ ]\r");
7 fflush(stdout);
8 sleep(1);
9 printf("[# ]\r");
10 fflush(stdout);
11 sleep(1);
12 printf("[## ]\r");
13 fflush(stdout);
14 sleep(1);
15 printf("[### ]\r");
16 fflush(stdout);
19 return 0;
20 }
unistd.h 是为了提供延迟函数sleep。
在linux中,上述代码可以直接运行。 在windows中,如果不能运行,考虑sleep函数的头文件归属即可。