C語言光標旋轉(zhuǎn)與倒計時功能實現(xiàn)示例詳解
1、光標旋轉(zhuǎn)
首先問大家一個問題,大家覺得回車與換行是一個相同的概念嗎?
很多人往往把它們兩個當作是一個相同的概念,為什么會這么說呢?回想一下'\n',大家覺得這是回車符號呢?還是換行符號呢?好像我們在日常中并沒有特意區(qū)分這兩個概念,我們既說'\n'是一個回車符號,也說這是一個換行符號,這就是我們混淆的表象,但回車與換行確實兩個不同的概念,接下來帶大家了解一下回車與換行吧!
回車:代表的是光標回到當前行的最開始的位置。
換行:代表的是光標移動到下一行。
根據(jù)上面的概念,真正的回車符號應該是'\r',即回到當前行的起始位置,而我們通常了解的'\n'應該是回車換行符,因為它的功能既包括了回車,也包括了換行,即光標跳轉(zhuǎn)到下一行的起始位置。
而我們今天講的光標旋轉(zhuǎn)功能就是利用了回車符'\r',接下來廢話不多說,直接上代碼!然會根據(jù)代碼給大家進行講解。
#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類型的數(shù)組lable,里面存儲的元素依次為'| / - \',至于最后為什么用了兩個\\,在程序中已經(jīng)給出了相應的解釋,然后構(gòu)造一個死循環(huán),對數(shù)組元素逐個循環(huán)打印,為了保證在打印完尾元素之后打印的是首元素,通過對index對4取余保證數(shù)組下標是始終為0~3,這樣保證了數(shù)組元素的循環(huán)打印。
通過'\r'進行回車操作回到輸出行的起始位置保證了每一次的輸出都是在一行的起始位置處進行輸出,然后通過休眠函數(shù)Sleep()進行控制每一次輸出的間隔進而形成動態(tài)效果,這樣就實現(xiàn)了光標旋轉(zhuǎn)的功能。
注意:使用休眠函數(shù)需要引用windows.h頭文件,休眠函數(shù)中()內(nèi)的數(shù)字單位為毫秒。
2、倒計時
倒計時功能相對來說并不難實現(xiàn),直接上代碼,然后給大家簡單解釋一下。
#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()休眠函數(shù),然后實現(xiàn)了倒計時的功能。
兩個程序的共同點是均使用了'\r'與Sleep()函數(shù),看吧,這個我們在C語言中忽略的小小的點竟然能發(fā)揮處如此巨大的作用,想不到吧!好了,今天的分享到此結(jié)束,感謝大家的支持,更多關于C語言光標旋轉(zhuǎn)與倒計時功能的資料請關注腳本之家其它相關文章!
相關文章
C++ 中"priority_queue" 優(yōu)先級隊列實例詳解
這篇文章主要介紹了C++ 中"priority_queue" 優(yōu)先級隊列實例詳解的相關資料,需要的朋友可以參考下2017-04-04