iT邦幫忙

2021 iThome 鐵人賽

DAY 29
0
自我挑戰組

腦力激盪C++系列 第 29

[Day-29] 小練習-動態進度條

  • 分享至 

  • xImage
  •  

綜合過去所學
今天要來練習的是「動態進度條」
廢話不多說直接練習吧!
/images/emoticon/emoticon42.gif

程式碼:

#include<iostream>
#include<cstdlib>
#include <conio.h>
using namespace std;
int main()
{
	int brk;
	while(!kbhit()){
	    if (_kbhit()){
	        brk = _getch();
	        if (brk == 27){ 
				break; 
			}
    }
    int speed=500;
    for(int i=1; i<=12; i++){
		cout <<"→當前進度";
		if(i==1){
			cout << " ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ";}
		if(i==2){
			cout << " ● ○ ○ ○ ○ ○ ○ ○ ○ ○ ";}
		if(i==3){
			cout << " ● ● ○ ○ ○ ○ ○ ○ ○ ○ ";}
		if(i==4){
			cout << " ● ● ● ○ ○ ○ ○ ○ ○ ○ ";}
		if(i==5){
			cout << " ● ● ● ● ○ ○ ○ ○ ○ ○ ";}
		if(i==6){
			cout << " ● ● ● ● ● ○ ○ ○ ○ ○ ";}
		if(i==7){
			cout << " ● ● ● ● ● ● ○ ○ ○ ○ ";}
		if(i==8){
			cout << " ● ● ● ● ● ● ● ○ ○ ○ ";}
		if(i==9){
			cout << " ● ● ● ● ● ● ● ● ○ ○ ";}
		if(i==10){
			cout << " ● ● ● ● ● ● ● ● ● ○ ";}
		if(i==11){
			cout << " ● ● ● ● ● ● ● ● ● ● ";}
		if(i==12){
			cout << " ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ";}
            
        _sleep(speed);
        system("cls");
        } 
	}
	cout << "\n→END" ;
    return 0;
}

執行結果:
(由於不太會用錄影
無法呈現動態進度條的感覺
所以就一個一個展示出來)
/images/emoticon/emoticon04.gif

→ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ˍ
→ ● ○ ○ ○ ○ ○ ○ ○ ○ ○ˍ
→ ● ● ○ ○ ○ ○ ○ ○ ○ ○ˍ
→ ● ● ● ○ ○ ○ ○ ○ ○ ○ˍ
→ ● ● ● ● ○ ○ ○ ○ ○ ○ˍ
→ ● ● ● ● ● ○ ○ ○ ○ ○ˍ
→ ● ● ● ● ● ● ○ ○ ○ ○ˍ
→ ● ● ● ● ● ● ● ○ ○ ○ˍ
→ ● ● ● ● ● ● ● ● ○ ○ˍ
→ ● ● ● ● ● ● ● ● ● ○ˍ
→ ● ● ● ● ● ● ● ● ● ●ˍ
→ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ˍ

按下空白鍵後執行(程式一定會跑完for迴圈才會結束)

→END
--------------------------------
Process exited after 0.08787 seconds with return value 0
請按任意鍵繼續...

程式碼解釋:
◆鍵盤輸入跳出迴圈
宣告int型態的變數brk
當作keycode的存入值
之後再用while迴圈去判斷鍵盤有無按下
kbhit就是

#include<conio.h>

裡面所使用的函式
那這邊空白鍵的keycode我沒有設定值
所以按任意鍵就可以跳出迴圈
◆動態進度條
這邊就簡單的使用for迴圈去寫進度條
比較需要理解的是

_sleep()

這段函式它是包含在
#include<cstdlib>裡面
功能類似delay
我這邊是給它變數speed=500的值
所以就是delay500毫秒的意思
那今天就練習到這邊~
/images/emoticon/emoticon08.gif

-End-


上一篇
[Day-28] cin深入練習(二)
下一篇
[Day-30] 最後一天的小練習
系列文
腦力激盪C++30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言