亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Linux簡(jiǎn)易彩色進(jìn)度條的實(shí)例代碼

 更新時(shí)間:2017年11月23日 08:45:13   作者:Suhw  
#進(jìn)度條:顧名思義就是看計(jì)算機(jī)處理任務(wù)時(shí)的速度,完成度。下面通過(guò)本文給大家分享Linux簡(jiǎn)易彩色進(jìn)度條的實(shí)例代碼,需要的朋友參考下吧

在實(shí)現(xiàn)進(jìn)度條之前,我們需要先簡(jiǎn)單了解一些知識(shí):

一、緩沖區(qū):

緩沖區(qū)分為無(wú)緩沖、行緩沖、全緩沖。

無(wú)緩沖:表示的是沒有緩沖,可以將信息立馬顯現(xiàn)出來(lái),典型代表是標(biāo)準(zhǔn)錯(cuò)誤流stderr。

行緩沖:表示的是輸入輸出遇到換行才執(zhí)行真正的I/O操作。典型的代表是鍵盤的操作。

全緩沖:表示的是輸入輸出寫滿緩沖區(qū)才執(zhí)行I/O操作。典型的代表是磁盤的讀寫。

所以我們?cè)趯?shí)現(xiàn)的時(shí)候需要每次輸出完都需要使用fflush(stdout)將緩沖區(qū)刷新,以便下一次的輸出。

二、'\r'和 ‘\n'的區(qū)別:

回車用'\r'表示,表示的是回到這行的起始位置。換行用‘\n'表示,表示的是換行到下一行。所以我們?cè)趯?shí)現(xiàn)的時(shí)候需要用的是'\r',才能實(shí)現(xiàn)進(jìn)度條的效果。

三、如何彩色輸出:

終端的字符顏色由轉(zhuǎn)義序列控制,是文本模式下的系統(tǒng)顯示功能,與具體語(yǔ)言無(wú)關(guān)。轉(zhuǎn)義序列以控制字符'ESC'開頭。多數(shù)轉(zhuǎn)義序列超過(guò)兩個(gè)字符,故通常以'ESC'和左括號(hào)'[‘開頭。該起始序列稱為控制序列引導(dǎo)符,通常由'\033[‘或'\e[‘代替。

通過(guò)轉(zhuǎn)義序列設(shè)置終端顯示屬性時(shí),可采用以下格式:

\033[ Param {;Param;…}m 或 \e[ Param {;Param;…}m

其中,'\033[‘或'\e[‘引導(dǎo)轉(zhuǎn)義序列,'m'表示設(shè)置屬性并結(jié)束轉(zhuǎn)義序列。Param為屬性值,{…}表示可選(多個(gè)參數(shù)之間用分號(hào)隔開,與順序無(wú)關(guān))。

在實(shí)現(xiàn)中為了增加可讀性可以我們可以將顏色定義為宏,再進(jìn)行使用。

注意:'\033[0m'用于恢復(fù)默認(rèn)的終端輸出屬性,否則會(huì)影響后續(xù)的輸出。

四、usleep()函數(shù):

usleep()函數(shù)的功能是把調(diào)用該函數(shù)的線程掛起一段時(shí)間 , 單位是微秒(即百萬(wàn)分之一秒); 頭文件: unistd.h 語(yǔ)法: void usleep(int micro_seconds); 在實(shí)現(xiàn)過(guò)程中我們可以調(diào)用usleep()函數(shù)來(lái)實(shí)現(xiàn)每0.1s刷新進(jìn)度條的現(xiàn)象。

代碼實(shí)現(xiàn)如下:

#include <stdio.h>
#include <unistd.h>
#include <string.h>
#define NONE "\e[0m"
#define RED  "\e[0;31m"
#define BLUE "\e[0;34m"
int main()
{
  int index = 0;
  char str[21];
  memset(str,'\0',sizeof(str));
  char tmp[5] = {'-','\\','|','/','\0'};
  while(index <=20)
  {  
    str[index] = '#';
    if(index <=10)
      printf(RED"%s[%d%%%c]\r"NONE,str,index*5,tmp[index%4]);
    else
      printf(BLUE"%s[%d%%%c]\r"NONE,str,index*5,tmp[index%4]);
    fflush(stdout);
    index++;
    usleep(100000);
  }  
  printf("\n");
  return 0;
}

效果如下:

這里寫圖片描述

總結(jié)

以上所述是小編給大家介紹的Linux簡(jiǎn)易彩色進(jìn)度條的實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評(píng)論