C語言光標旋轉與倒計時功能實現示例詳解

1、光標旋轉

首先問大傢一個問題,大傢覺得回車與換行是一個相同的概念嗎?

很多人往往把它們兩個當作是一個相同的概念,為什麼會這麼說呢?回想一下’\n’,大傢覺得這是回車符號呢?還是換行符號呢?好像我們在日常中並沒有特意區分這兩個概念,我們既說’\n’是一個回車符號,也說這是一個換行符號,這就是我們混淆的表象,但回車與換行確實兩個不同的概念,接下來帶大傢瞭解一下回車與換行吧!

回車:代表的是光標回到當前行的最開始的位置。

換行:代表的是光標移動到下一行。

根據上面的概念,真正的回車符號應該是’\r’,即回到當前行的起始位置,而我們通常瞭解的’\n’應該是回車換行符,因為它的功能既包括瞭回車,也包括瞭換行,即光標跳轉到下一行的起始位置。

而我們今天講的光標旋轉功能就是利用瞭回車符’\r’,接下來廢話不多說,直接上代碼!然會根據代碼給大傢進行講解。

#include<stdio.h>
#include<windows.h>
int main()
{
    int index = 0;
    const char* lable = "|/-\\";//  \是特殊字符,如果想取字符本身,就要在前面加'\'
    while(1)
    {
        index %= 4;
        printf("[%c]\r", lable[index]);
        index++;
        Sleep(30);
    }
    system("pause");
    return 0;
}

這個程序首先是定義瞭一個char類型的數組lable,裡面存儲的元素依次為’| / – \’,至於最後為什麼用瞭兩個\\,在程序中已經給出瞭相應的解釋,然後構造一個死循環,對數組元素逐個循環打印,為瞭保證在打印完尾元素之後打印的是首元素,通過對index對4取餘保證數組下標是始終為0~3,這樣保證瞭數組元素的循環打印。

通過’\r’進行回車操作回到輸出行的起始位置保證瞭每一次的輸出都是在一行的起始位置處進行輸出,然後通過休眠函數Sleep()進行控制每一次輸出的間隔進而形成動態效果,這樣就實現瞭光標旋轉的功能。

註意:使用休眠函數需要引用windows.h頭文件,休眠函數中()內的數字單位為毫秒。

2、倒計時

倒計時功能相對來說並不難實現,直接上代碼,然後給大傢簡單解釋一下。

#include<stdio.h>
#include<windows.h>
int main()
{
    int i = 9;
    for(;i>=0;i--)
    {
        printf("[%d]\r",i);
        Sleep(500);    
    }
    system("pause");
    return 0;
}

其實這段代碼也是簡單的使用瞭’\r’與Sleep()休眠函數,然後實現瞭倒計時的功能。

兩個程序的共同點是均使用瞭’\r’與Sleep()函數,看吧,這個我們在C語言中忽略的小小的點竟然能發揮處如此巨大的作用,想不到吧!好瞭,今天的分享到此結束,感謝大傢的支持,更多關於C語言光標旋轉與倒計時功能的資料請關註WalkonNet其它相關文章!

推薦閱讀: