linux下實現進度條的原理就是每隔一段時間輸出一個'#',但是在輸出后不換行,下次輸出是從這一行的頭部開始輸出,此時就要用到回車 很多人認為回車就換行,換行就是回車,其實不是的.
回車(/r): 是將光標移到該行的頭部,
換行(/n):是將光標移到下一行的相同位置.
要寫進度條,我們還需要了解什么是緩沖區
緩沖區又稱為緩存,它是內存空間的一部分。也就是說,在內存空間中預留了一定的存儲空間,這些存儲空間用來緩沖輸入或輸出的數據,這部分預留的空間就叫做緩沖區。緩沖區根據其對應的是輸入設備還是輸出設備,分為輸入緩沖區和輸出緩沖區。我們為什么要引入緩沖區呢? 比如我們從磁盤里取信息,我們先把讀出的數據放在緩沖區,計算機再直接從緩沖區中取數據,等緩沖區的數據取完后再去磁盤中讀取,這樣就可以減少磁盤的讀寫次數,再加上計算機對緩沖區的操作大大快于對磁盤的操作,故應用緩沖區可大大提高計算機的運行速度。
又比如,我們使用打印機打印文檔,由于打印機的打印速度相對較慢,我們先把文檔輸出到打印機相應的緩沖區,打印機再自行逐步打印,這時我們的CPU可以處理別的事情。現在您基本明白了吧,緩沖區就是一塊內存區,它用在輸入輸出設備和CPU之間,用來緩存數據。它使得低速的輸入輸出設備和高速的CPU能夠協調工作,避免低速的輸入輸出設備占用CPU,解放出CPU,使其能夠高效率工作這里緩沖區就不過多介紹了,具體的可以自己上網查閱
我為什么會提到緩沖區呢,因為在寫進度條時,輸出的內容不會直接輸出,他會先寫到緩沖區中,之后一次性輸出,這不是我們想要的,此時就要用fflush----強制刷出緩沖區中的內容
以下便是代碼

新聞熱點
疑難解答