Linux下簡易進度條的實現

生活在高科技時代的我們,在電腦或手機上游戲娛樂時,通常會看到加載頁面或者下載東西的過程中會出現一個不斷變長直到填滿整個小長方形的條狀物,專業一點來說它就叫做進度條。

下面我們可以用C語言代碼自己來實現一個簡易的進度條。

首先要實現進度條我們就要了解它的原理。在C語言中對printf函數來說,它的輸出會先被寫在一段緩衝區中,用回車換行進行行刷新。而不是直接輸出到顯示器上。

在Linux下,/n爲回車換行

而在window下,/r,/n分別表示回車和換行。

我們如何來模擬實現一個進度條呢,基本我們可以這樣去做,首先定義一個數組讓他每次從頭開始在一行上輸出一個#,下一次比前一次多輸出一個#,一直覆蓋掉原來的#,然後使光標回退到這行的起始位值,繼續輸出。再用fflush清空緩衝流,將緩衝區的所有內容立即輸出到顯示器上而不讓其一段一段的顯示,並且能滿足進度條的實時性,代碼截圖如下:


在我們運行代碼的過程中爲了方便起見可以提前編寫一個Makefile文件,之後直接make就可生成可執行程序,清理工程也會比較方便,直接輸入make clean命令即可。Makefile文件截圖如下:


運行時截圖:


運行完成後:


這樣一個簡易的進度條就完成了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章