前言:
進度條是什麼?想必打過游戲或者下載過東西的同學都能有看到過一個加載條形和百分比顯示當
前已經加載了多少了。本篇博客就是實現了這麼個東西。
實現思路分析:
要實現進度條,主要是在緩沖區裡面做文章。首先先介紹下大致思路。要達到的目的是能夠在屏幕上顯示一個進度條,那麼不難想到使用printf打印一個字符串在屏幕上就可以達到目的了。
但是實現時有很多的細節:
1.我們要打印個進度條肯定是100%的,所以需要一個能夠剛下100個字符的數組是必要的,但是需要注意的是要多開辟一個字符放‘\0’,開辟好以後還需要全部初始化成'\0'防止輸出字符串的時候出現亂碼。
2.最重要的是需要加上printf("\r"),這個是用來只回車不換行,能夠達到的功能是緩沖去裡面的值始終只有一行,不會出現每次要輸出一串字符,這樣就能實現進度條的核心功能了。
3.還有一些小的細節,在打印進度條時,需要將兩邊的框固定,所以寫成%100s但是需要加上負號,因為那樣寫是從右邊開始打印的。
#include "stdio.h" #include "stdlib.h" #include "string.h" int main() { int i=0; char mod[4]={'-','\\','_','/'}; char rate[101]={'\0'}; memset(rate,'\0',101); for(i=0;i<100;i++) { rate[i]= '='; printf("[%-100s]%d%% %c",rate,i+1,mod[i%4]); printf("\r"); usleep(100000); fflush(stdout); } printf("\n"); return 0; }效果圖: