首先我们需要了解缓冲区的概念,
一般来说,我们都是行缓冲的,就是如果不满一行,我们所编写的代码执行结果不会输出到显示屏上(需要你用sleep函数去体会)
一般我们有换行符\n所以当碰到\n时,执行结果会直接显示出来,
\r表示回车,所以每次执行时会返回到行首。
利用这两个关系,去实现进度条的动态化
void pbar()
4 {
5 int i=0;
6 char bar[101];
7 memset(bar,'\0',sizeof(bar));
8 const char* lable = "|/-\\";
9 while(i<=100)
10 {
11 printf("[%-100s][%-3d%%][%c]\r",bar,i,lable[i%4]);
12 fflush(stdout);
13 bar[i++]='#';
14 usleep(30000);
15 }
16
17 printf("\n");
18 }
使用fflush来让缓冲区的结果直接输出到显示屏上,利用回车实现进度条的动态效果。