回車與換行
緩衝區概念乙個緩衝區物件是固定數量的資料的容器,其作用是乙個儲存器(記憶體),或者分段運輸區,在這裡資料可被儲存並在之後用於檢索。
緩衝區可分為:全緩衝,行緩衝,不帶緩衝
全緩衝:當填滿標準io的快取後才進行實際io操作。windows和linux都可以通過給 _mode設為 _iofbf設定全緩衝。全緩衝的典型就是對磁碟檔案的讀寫。緩衝區為空,一次讀滿資料,再寫出。
行緩衝:在輸入輸出遇到換行符時,執行真正的io操作。linux輸出預設是行緩衝,以回車結束。windows沒有行緩衝,不能設定,一旦設定變為全緩衝。設定行緩衝為:_iolbf。這時候輸入的字元先存放至緩衝區,等按下回車鍵時才進行實際io操作。典型代表就是鍵盤輸入資料,每次讀取一行。
不帶緩衝:直接進行實際的輸入輸出操作。windows預設輸出不帶緩衝,linux可以設定setvbuf(stdout, null, _ionbf, 0)。
緩衝區重新整理
#include
#include
int main()
由於linux下是行緩衝,所以讓它睡眠3秒檢視現象,發現hello world!會先輸入到緩衝區中,睡眠3秒後輸出到顯示屏上。
如果重新整理緩衝區,則會先將hello world!輸出到顯示屏,然後休眠3秒。
彩色進度條利用回車概念,實現視覺上的彩色進度條。
#include
#include
#include
int main();
int i = 0;
int j = 0;
int color = ;
const
char* lable = "|/-\\";
for(; i < 101; ++i)
fflush(stdout);
usleep(50000);
}printf("\n");
return
0;}
效果如下:
在這裡就有乙個疑問如何使輸出字型帶顏色?
經過查詢資料發現只有在輸出時候加上 」\033[ ; m …… \033[0m「即可使得輸出的字型和背景是有顏色的。
常見引數如下:
字背景顏色範圍:40 - 49
字顏色:30 - 39
ansi控制碼:
Linux下簡易彩色進度條
個人部落格傳送門 前言在linux下安裝檔案的時候,都會有個進度條來提示我們安裝的進度是多少。這裡我們模擬輸出這個進度條。主要用到輸出函式的操作 緩衝區的重新整理 usleep函式 linux終端顏色的顯示等知識。效果如下 鋪墊知識點 緩衝區 緩衝區分位三種 無緩衝,行緩衝,全緩衝。無緩衝 沒有緩衝...
Linux下彩色進度條的實現
在linux下安裝軟體的過程中會出現乙個進度條,它通過動態增加一些符號來表示安裝進度。今天我們就來模擬實現一下乙個進度條。在實現進度條之前,首先需要了解一些概念。一.緩衝區 緩衝區分為三種 無緩衝,行緩衝和全緩衝。無緩衝 指沒有緩衝,立即顯示資訊。行緩衝 輸入輸出遇到換行符才進行io操作。全緩衝 輸...
Linux下彩色進度條的實現
實現乙個彩色進度條的前提是要了解linux下如何改變shell的輸出顏色,shell的輸出顏色改變是通過轉義序列完成的。多數轉義序列以控制字元 esc 和左中括號 開頭。該起始序列稱為控制序列引導符,通常由 033 或 e 代替 通過轉義序列設定終端顯示屬性時,採用以下格式 033 屬性m 或 e ...