linux实现进度条代码如下:
#include<stdio.h>
2 #include<unistd.h>3 int main()
4 {
5 char bar[102];
6 bar[0] = '\0';
7 const char *lable = "-\\|/";
8 int i = 0;
9 while(i <= 100)
10 {
11 printf("[%-101s][%d%%][%c]\r",bar,i,lable[i%4]);
12 fflush(stdout);
13 bar[i++] = '#';
14 bar[i] = '\0';
15 usleep(10000);
16 }
17 return 0;
18 }
截图:
上述代码采用 makefile
基本原理:
(1)进度条原理:创建一个范围为0到100的进度条.我会把进度条初始为0,然后,当我载入一个资源的时候我会用单位长度来让进度条前进一个步长.当进度条前进时,它都会重画自身 从而实现我们想要的结果。
(2)回车和换行的区别
回车:回车 \r 本义是光标重新回到本行开头,r的英文return。
换行:换行 \n 本义是光标往下一行(不一定到下一行行首),n的英文newline。
(3)缓冲区:fflush()会强迫将缓冲区内的数据写回参数stream 指定的文件中. 如果参数stream 为NULL,fflush()会将所有打开的文件数据更新.