進度條是什麼?進度條就是在你下載文件、軟件、游戲等出現的進度,它會顯示你在有百分之多少就能下載好這個東西。
由於自己的好奇,我就在Linux下實現了這個東西。
我的實現思路:
1.給一個數組,這個數組必須能保存下100個字符。
2.然後把數組看成一行來讀取。
3.最後標准輸出在屏幕上。
注意:
1.我們要打印個進度條肯定是100%的,所以需要一個能夠剛下100個字符的數組是必要的,但是需要注意的是要多開辟一個字符放‘/0’,開辟好以後還需要全部初始化成'/0'防止輸出字符串的時候出現亂碼。
2.最重要的是需要加上printf("/r"),這個是用來只回車不換行,能夠達到的功能是緩沖去裡面的值始終只有一行,不會出現每次要輸出一串字符,這樣就能實現進度條的核心功能了。
3.在打印進度條時,需要將兩邊的框固定,所以寫成%100s但是需要加上負號,因為那樣寫是從右邊開始打印的
實現代碼:
#include<stdio.h>
#include <string.h>
void proc()
{
int rate = 0;
const char *lable = "|/-\\";
char bar[102];
memset(bar, '\0', sizeof(bar));//初始化
while (rate <= 100)
{
bar[rate] = '=';
printf("[-101s][%d%%][%c]\r", bar, rate, lable[rate % 4]);
fflush(stdout);//標准輸出
rate++;
usleep(10000);
}
printf("\n");
}
int main()
{
proc();
return 0;
}
輸出結果: