国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux新手小程序——進度條

這篇具有很好參考價值的文章主要介紹了Linux新手小程序——進度條。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

目錄

前言


需要先了解????????1.\r\n
? ? ? ? ? ? ? ? ? ????????2.緩沖區(qū)

一.理解字符的含義:

? ? ? ? 學(xué)習(xí)c語言時,我們可以粗略把字符分為可顯字符控制字符.

? ? ? ? 在按回車換到下一行開始的操作時,實際上是進行了兩個操作:1.讓光標跳到下一行(只是垂直向下,這一步的操作稱為換行).2.讓光標跳到最開始的位置(此操作稱為回車).

? ? ? ? 即\r:回車?\n換行。

????????而在c語言環(huán)境下把\n簡化 其代表回車加換行。

測試\n,\r:

\n,\r都存在,既有回車又有換行,所以其linux的命令行在我們執(zhí)行程序下面。Linux新手小程序——進度條,linux,c++,c語言,小程序

Linux新手小程序——進度條,linux,c++,c語言,小程序

只有\(zhòng)n

們在上面說了,這是我們在這個語言環(huán)境下我們將其簡化,此時的\n就表示回車加換行。

\r \n都沒有

linux命令就直接跟在文本行后面。

Linux新手小程序——進度條,linux,c++,c語言,小程序

Linux新手小程序——進度條,linux,c++,c語言,小程序

只有\(zhòng)r?

只有回車的效果,光標本來在文本行最后一個字符旁,回車后光標來到了文本行開始,最終導(dǎo)致文本被覆蓋。?

Linux新手小程序——進度條,linux,c++,c語言,小程序

Linux新手小程序——進度條,linux,c++,c語言,小程序

?二,緩沖區(qū)的概念

#include<stdio.h>
#include<unistd.h>

int main()
{
	printf("hello world");
	sleep(3);
}

運行上面代碼會發(fā)現(xiàn)結(jié)果沒有立馬打印出來,這是因為數(shù)據(jù)在sleep期間被暫時保存起來。

但是如果加上\n,數(shù)據(jù)就會顯示出來?!彌_區(qū)有自己的行緩沖刷新策略。

三,小程序

1.倒計時小程序

  1 #include<stdio.h>
  2 #include<unistd.h>
  3 
  4 int main()
  5 {
  6   int i=0;
  7   for(i=9;i>=0;i--)
  8   {
  9     printf("%d\r",i);
 10                                                                                                            
 11     sleep(1);
 12   }
 13   return 0;
 14 }

我們利用\r覆蓋的特性實現(xiàn)如上代碼,但是結(jié)果倒計時卻不顯示,原因是數(shù)據(jù)存放在緩沖區(qū)里,緩沖區(qū)沒有被刷新。我們將代碼修改如下:

1 #include<stdio.h>
  2 #include<unistd.h>
  3 
  4 int main()
  5 {
  6   int i=0;
  7   for(i=9;i>=0;i--)
  8   {
  9     printf("%d\r",i);
 10     fflush(stdout);                                                                                                          
 11     sleep(1);
 12   }
 13   return 0;
 15 }

以上代碼我們會發(fā)現(xiàn)如果時間變成兩位數(shù),將只能覆蓋一位數(shù),因此修改為:

1 #include<stdio.h>
  2 #include<unistd.h>
  3 
  4 int main()
  5 {
  6   int i=0;
  7   for(i=9;i>=0;i--)
  8   {
  9     printf("%-2d\r",i);
 10     fflush(stdout);                                                                                                          
 11     sleep(1);
 12   }
 13   return 0;
 15 }
~

2.進度條

進度條的預(yù)期樣式:[#########################################] [%100] [/]

? ? 第一個括號是進度條 第二個括號是進度百分比 第三個是旋轉(zhuǎn)圖標 用于判斷是否卡住。

編寫

proc.h,編寫進度條的頭文件
proc.c,編寫進度條的函數(shù)
main.c,測試進度條

proc.h

 1  #pragma once                                                                                                                     
  2 
  3  #include <stdio.h>
  4 
  5 void process();   ~                        

main.c

 1 #include "proc.h"
  2 
  3 int main()
  4 {
  5   process();
  6   return 0;                                                                                                                  
  7 }

proc.c文章來源地址http://www.zghlxwxcb.cn/news/detail-610089.html

  1 #include"proc.h"
  2 #include<unistd.h>
  3 #include<string.h>
  4 
  5 //  "|/-\"旋轉(zhuǎn)標志
  6 void process()
  7 {
  8   const char* lable ="|/-\\";        //特殊字符\需要用\\
  9 
 10   //為什們要定義101個字符?
 11   //就是因為我們的進度條有100個
 12   //但是字符的結(jié)尾要用\0表示所以我們要有101個字符
 13   char bar[101];
 14   //先將進度條設(shè)置為\0,然后在依次增加#。
 15   memset(bar,'\0',sizeof(bar));
 16   int i=0;
 17   while(i<=100)
 18   {
 19     printf("[%-100s] [%d%%] [%c]\r",bar,i,lable[i%4]);                                                                       
 20     fflush(stdout);
 21     bar[i++]='#';
 22     usleep(100000);
 23   }
 24   printf("\n");
 25 
 26 }

到了這里,關(guān)于Linux新手小程序——進度條的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【Linux】Linux第一個小程序-進度條

    【Linux】Linux第一個小程序-進度條

    前言: 在之前的學(xué)習(xí)中,我們已經(jīng)基本掌握了關(guān)于了 Linux 下的一些工具的使用,接下來我們運用之前學(xué)到的知識,我將帶領(lǐng)大家寫了一個關(guān)于?進度條 的小程序來練練手!??! 本文目錄 (一)理解 r n 1、可顯字符 和 控制字符 2、代碼演示 (二)緩沖區(qū)的理解 1、什么是緩

    2024年02月01日
    瀏覽(13)
  • 『Linux小程序』進度條

    『Linux小程序』進度條

    假設(shè)有一段代碼為: 編譯后運行為正常,先打印后等待三秒結(jié)束程序; 但若是將其中的換行endl刪除再次編譯運行將會一樣嗎; ? 答案為否 為什么不是先打印后sleep而是先sleep后打印呢 這里存在一個緩沖區(qū)問題 毋庸置疑的是,該處執(zhí)行的順序一定是先打印后sleep ? 在這里確實是先

    2024年02月07日
    瀏覽(19)
  • Linux 小程序-進度條

    Linux 小程序-進度條

    ? ? ? ? 1.回車換行 ? ? ? ? ? ? ? ? 回車換行是兩個動作; ? ? ? ? ? ? ? ? 回車是將光標移至當(dāng)前行的最左側(cè), ? ? ? ? ? ? ? ? 換行是將當(dāng)前光標位置移至下一行的相同位置。 ? ? ? ? 2.緩沖區(qū) ? ? ? ? ? ? ? ? 由c語言維護的一段內(nèi)存? ? ? ? ? ? ? ? ? 1.stdout:標

    2024年02月10日
    瀏覽(21)
  • Linux小程序--進度條

    Linux小程序--進度條

    目錄 1.知識補充 1.1回車和換行? 1.2緩沖區(qū) 2.實現(xiàn)倒計時? 3.實現(xiàn)進度條? 1.在制作小程序進度條之前,我們先了解一下,回車換行和行緩沖區(qū)的概念。 2.動態(tài)效果,在同一個位置刷新不同的圖像,實現(xiàn)一個倒計時的效果。 3.有了上面的基礎(chǔ)我們就可以實現(xiàn)進度條了 所以說回車

    2024年02月21日
    瀏覽(13)
  • 【Linux系統(tǒng)編程】Linux第一個小程序——進度條

    【Linux系統(tǒng)編程】Linux第一個小程序——進度條

    這篇文章我們一起來完成我們Linux中的第一個小程序——進度條 在C語言中,字符可以分為可顯字符(printable characters)和控制字符(control characters)。 可顯字符是指可以在屏幕或打印輸出上顯示的字符,它們包括數(shù)字、字母、標點符號、符號等。可顯字符可以直接被用戶看到

    2024年02月16日
    瀏覽(23)
  • Linux進度條小程序

    Linux進度條小程序

    在學(xué)習(xí)C語言的時候,我們輸出的時候,通常會使用 n ,進行換行輸出。其實這的所謂的 換行 ,包含了2個操作: 回車、換行 。 回車的本意是將光標回車到當(dāng)前行的最前面,在C語言中 r 表示回車。 這就是回車的現(xiàn)象,這里按理說最后應(yīng)該會輸出到0停止,然后將0顯式到終端

    2024年02月13日
    瀏覽(15)
  • Linux小程序之進度條

    Linux小程序之進度條

    ? 作者簡介:?舊言~,目前大二,現(xiàn)在學(xué)習(xí)Java,c,c++,Python等 座右銘:松樹千年終是朽,槿花一日自為榮。 目標:自己能實現(xiàn)進度條 毒雞湯: 望小伙伴們點贊??收藏?加關(guān)注喲????? ????????咱們學(xué)習(xí)這么久的指令,一句話來概括,都忘光咯,學(xué)個錘錘??????,

    2024年02月05日
    瀏覽(11)
  • 【Linux】實現(xiàn)進度條小程序

    【Linux】實現(xiàn)進度條小程序

    個人主頁 : zxctscl 如有轉(zhuǎn)載請先通知 在之前已經(jīng)了解了 【Linux】vim的使用和 【Linux】編譯器-gcc/g++使用還有 【Linux】自動化構(gòu)建工具-make/Makefile,有了這些工具,這次來實現(xiàn)一個進度條小程序。 換行:是換到新的一行。 回車:是回到最開始。 舉個例子:在格子里面寫字的時

    2024年03月22日
    瀏覽(23)
  • 【Linux】-第一個小程序(進度條)

    【Linux】-第一個小程序(進度條)

    ??作者:小樹苗渴望變成參天大樹 ??作者宣言:認真寫好每一篇博客 ??作者gitee:gitee ??作者專欄:C語言,數(shù)據(jù)結(jié)構(gòu)初階,Linux,C++ 動態(tài)規(guī)劃算法 如 果 你 喜 歡 作 者 的 文 章 ,就 給 作 者 點 點 關(guān) 注 吧! 大家好久不見,已經(jīng)快一個月沒有更新Linux相關(guān)的知識了,希望大家

    2024年02月12日
    瀏覽(18)
  • Linux第一個小程序進度條

    Linux第一個小程序進度條

    ? 在寫進度條程序之前我們需要介紹一下緩沖區(qū),緩沖區(qū)有兩種,輸入和輸出緩沖區(qū),這里主要介紹輸出緩沖區(qū)。在我們用C語言寫代碼時,輸出一些信息,實際上是先輸出到輸出緩沖區(qū)里,然后才輸出到我們的顯示器上。 原因是: 如果輸出一個字符就打印到顯示器上,那么

    2024年02月05日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包