在本章開始之前還是先給大家分享一張圖片
這是C++的筆試題 感興趣的同學(xué)可以去試一試 有難度的喲 也可以直接在??途W(wǎng)直接搜索這幾道題目哈
好了今天我們正式進(jìn)入我們的正題部分
??1.使用git命令行
安裝git
yum install git
??2.在github創(chuàng)建項目
使用 Github 創(chuàng)建項目
注冊賬號
創(chuàng)建項目
??1. 登陸成功后, 進(jìn)入個人主頁, 點擊左下方的 New repository 按鈕新建項目
2. 然后跳轉(zhuǎn)到的新頁面中輸入項目名稱(注意, 名稱不能重復(fù), 系統(tǒng)會自動校驗. 校驗過程可能會花費幾秒鐘). 校驗
完畢后, 點擊下方的 Create repository 按鈕確認(rèn)創(chuàng)建
3. 在創(chuàng)建好的項目頁面中復(fù)制項目的鏈接, 以備接下來進(jìn)行下載
下載項目到本地
創(chuàng)建好一個放置代碼的目錄
git clone [url]
這里的 url 就是剛剛建立好的 項目 的鏈接.
三板斧第一招: git add
將代碼放到剛才下載好的目錄中
git add [文件名]
將需要用 git 管理的文件告知 git
三板斧第二招: git commit
提交改動到本地
git commit .
最后的 “.” 表示當(dāng)前目錄
提交的時候應(yīng)該注明提交日志, 描述改動的詳細(xì)內(nèi)容.
三板斧第三招: git push
同步到遠(yuǎn)端服務(wù)器上
git push
需要填入用戶名密碼. 同步成功后, 刷新 Github 頁面就能看到代碼改動了.
配置免密碼提交
點擊鏈接查看
??3.Linux第一個小程序——進(jìn)度條
#include <stdio.h>
int main()
{
printf("hello Makefile!");
fflush(stdout);
sleep(3);
return 0;
}
進(jìn)度條代碼
#include <unistd.h>
#include <string.h>
int main()
{
int i = 0;
char bar[102];
memset(bar, 0 ,sizeof(bar));
const char *lable="|/-\\";
while(i <= 100 ){
printf("[%-100s][%d%%][%c]\r", bar, i, lable[i%4]);
fflush(stdout);
bar[i++] = '#';
usleep(10000);
}
printf("\n");
return 0;
}
當(dāng)然這只是簡單的版本 簡單的版本我們昨天已經(jīng)介紹過了 今天我們講一下進(jìn)階版本的代碼 大家仔細(xì)看 有一點復(fù)雜
下面是模擬下載進(jìn)度的代碼 這里需要注意幾個細(xì)節(jié) srand函數(shù)大家可以去Cplusplus官網(wǎng)去找一下 這是個時間戳的意思 只能生成依次 我在這里^1023的意思就只是為了讓隨機(jī)數(shù)更加隨機(jī)一些 然后我們才能正常地使用我們的rand函數(shù) 后面的rate是浮點需要*100.0與之匹配
#include "processbar.h"
#include <time.h>
#include <stdlib.h>
#include <unistd.h>
#define FILESIZE 1024*1024*1024
//模擬一種場景,表示一種下載的任務(wù)
void download(callback_t cb) // 回調(diào)函數(shù)的形式
{
srand(time(NULL)^1023);
int total = FILESIZE;
while(total){
usleep(10000); //下載動作
int one = rand()%(1024*1024*10);
total -= one;
if(total < 0) total = 0;
// 當(dāng)前的進(jìn)度是多少?
int download = FILESIZE - total;
double rate = (download*1.0/(FILESIZE))*100.0; // 0 23.4 35.6, 56.6
cb(rate);
//process_flush(rate);
//printf("download: %f\n", rate); // rate出來了,應(yīng)該讓進(jìn)度條刷新
}
}
int main()
{
//process();
download(process_flush);
return 0;
}
這個時候我們的進(jìn)度條有了之后需要做什么呢或者說的我們還需要思考什么呢?
請問大家我們旋轉(zhuǎn)的光標(biāo)如何不受下載進(jìn)度的控制呢?
來看下面代碼
#include "processbar.h"
#include <string.h>
#include <unistd.h>
const char *lable="|/-\\";
//version 1
void process()
{
// const int n = 101;
// char buffer[n]; // 這塊是編譯不過的
char buffer[NUM];
memset(buffer, '\0', sizeof(buffer));
int cnt = 0;
int n = strlen(lable);
buffer[0] = Head;
while(cnt <= 100)
{
printf("[%-100s][%3d%%][%c]\r", buffer, cnt, lable[cnt%n]);
fflush(stdout);
buffer[cnt++] = Body;
if(cnt < 100) buffer[cnt] = Head;
usleep(50000);
}
printf("\n");
}
//version 2: 進(jìn)度是多少,你進(jìn)度條能知道嗎?另外,什么進(jìn)度?依附于其他應(yīng)用的,比如下載
char buffer[NUM] = {0};
void process_flush(double rate)
{
static int cnt = 0;
int n = strlen(lable);
if(rate <= 1.0) buffer[0] = Head;
printf("[\033[4;32;44m%-100s\033[0m][%.1f%%][%c]\r", buffer, rate, lable[cnt%n]);
fflush(stdout);
buffer[(int)rate] = Body;
if((int)rate+1 < 100) buffer[(int)(rate+1)] = Head;
if(rate>=100.0) printf("\n");
cnt++;
cnt%=n;
進(jìn)度條不受下載進(jìn)度的影響 那么我們這時候就在代碼的最后兩行加上我的上述代碼就可以完美解決
這就是不受進(jìn)度條影響光標(biāo)自動旋轉(zhuǎn)的代碼文章來源:http://www.zghlxwxcb.cn/news/detail-752493.html
#pragma once
#include <stdio.h>
#define NUM 103
#define Body '='
#define Head '>'
typedef void (*callback_t)(double);
//version 1
void process();
//version 2
void process_flush(double rate);
文章來源地址http://www.zghlxwxcb.cn/news/detail-752493.html
到了這里,關(guān)于【Linux】:使用git命令行 || 在github創(chuàng)建項目 || Linux第一個小程序——進(jìn)度條(進(jìn)階版本)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!