当前位置: 首页 > news >正文

【Linux】:使用git命令行 || 在github创建项目 || Linux第一个小程序——进度条(进阶版本)

在这里插入图片描述
在本章开始之前还是先给大家分享一张图片
在这里插入图片描述
这是C++的笔试题 感兴趣的同学可以去试一试 有难度的哟 也可以直接在牛客网直接搜索这几道题目哈
好了今天我们正式进入我们的正题部分

🕖1.使用git命令行

安装git

yum install git

在这里插入图片描述
在这里插入图片描述

🕠2.在github创建项目

使用 Github 创建项目
注册账号
创建项目
♨️1. 登陆成功后, 进入个人主页, 点击左下方的 New repository 按钮新建项目
在这里插入图片描述
2. 然后跳转到的新页面中输入项目名称(注意, 名称不能重复, 系统会自动校验. 校验过程可能会花费几秒钟). 校验
完毕后, 点击下方的 Create repository 按钮确认创建
在这里插入图片描述
3. 在创建好的项目页面中复制项目的链接, 以备接下来进行下载
在这里插入图片描述
下载项目到本地
创建好一个放置代码的目录

git clone [url]

这里的 url 就是刚刚建立好的 项目 的链接.
三板斧第一招: git add
将代码放到刚才下载好的目录中

git add [文件名]

将需要用 git 管理的文件告知 git
三板斧第二招: git commit
提交改动到本地

git commit .

最后的 “.” 表示当前目录
提交的时候应该注明提交日志, 描述改动的详细内容.
三板斧第三招: git push
同步到远端服务器上

git push

需要填入用户名密码. 同步成功后, 刷新 Github 页面就能看到代码改动了.
配置免密码提交
点击链接查看

🕤3.Linux第一个小程序——进度条

#include <stdio.h>
int main()
{
printf("hello Makefile!");
fflush(stdout);
sleep(3);
return 0;
}

进度条代码

#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;
}

在这里插入图片描述
当然这只是简单的版本 简单的版本我们昨天已经介绍过了 今天我们讲一下进阶版本的代码 大家仔细看 有一点复杂
下面是模拟下载进度的代码 这里需要注意几个细节 srand函数大家可以去Cplusplus官网去找一下 这是个时间戳的意思 只能生成依次 我在这里^1023的意思就只是为了让随机数更加随机一些 然后我们才能正常地使用我们的rand函数 后面的rate是浮点需要*100.0与之匹配

#include "processbar.h"
#include <time.h>
#include <stdlib.h>
#include <unistd.h>
#define FILESIZE 1024*1024*1024
//模拟一种场景,表示一种下载的任务
void download(callback_t cb) // 回调函数的形式
{srand(time(NULL)^1023);int total = FILESIZE;while(total){usleep(10000); //下载动作int one = rand()%(1024*1024*10);total -= one;if(total < 0) total = 0;// 当前的进度是多少?int download = FILESIZE - total;double rate = (download*1.0/(FILESIZE))*100.0; // 0 23.4 35.6, 56.6cb(rate);//process_flush(rate);//printf("download: %f\n", rate); // rate出来了,应该让进度条刷新}
}
int main()
{//process();download(process_flush);return 0;
}

在这里插入图片描述

在这里插入图片描述
这个时候我们的进度条有了之后需要做什么呢或者说的我们还需要思考什么呢?
请问大家我们旋转的光标如何不受下载进度的控制呢?
来看下面代码

#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: 进度是多少,你进度条能知道吗?另外,什么进度?依附于其他应用的,比如下载
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;

进度条不受下载进度的影响 那么我们这时候就在代码的最后两行加上我的上述代码就可以完美解决
这就是不受进度条影响光标自动旋转的代码

#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);

在这里插入图片描述

相关文章:

【Linux】:使用git命令行 || 在github创建项目 || Linux第一个小程序——进度条(进阶版本)

在本章开始之前还是先给大家分享一张图片 这是C的笔试题 感兴趣的同学可以去试一试 有难度的哟 也可以直接在牛客网直接搜索这几道题目哈 好了今天我们正式进入我们的正题部分 &#x1f556;1.使用git命令行 安装git yum install git&#x1f560;2.在github创建项目 使用…...

Kotlin apply 交换两个数

代码&#xff1a; fun main() {var a 1var b 2a b.apply {b aprintln("$b")println("$this")}println("$a $b") }打印结果&#xff1a; 1 2 2 1原理分析&#xff1a; /*** Calls the specified function [block] with this value as its r…...

Android jetpack : Navigation 导航 路由 、 单个Activity嵌套多个Fragment的UI架构方式

Android Navigation 如何动态的更换StartDestination &&保存Fragment状态 Navigation(一)基础入门 google 官网 &#xff1a; Navigation 导航 路由 讨论了两年的 Navigation 保存 Fragment 状态问题居然被关闭了 Navigation是一种导航的概念&#xff0c;即把Activ…...

【react】在react中祖父、父亲、孙子组件层层解构其余属性props时报错children.forEach is not function

起因 报错children.forEacht is not function 分析原因 由于地址组件本身存在options&#xff0c;此时父组件又传递…otherProps&#xff0c;且解构了父级组件的otherProps&#xff0c;其中others解构后的属性就有options&#xff0c;因此产生了属性冲突&#xff0c;导致属性…...

P9831 [ICPC2020 Shanghai R] Gitignore

P9831 [ICPC2020 Shanghai R] Gitignore - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 只看题意翻译这道题是做不出来的&#xff0c;还要去看英文里面的规定&#xff08;这里就不放英文了&#xff09;&#xff0c;主要问题是不要公用子文件夹。 例如: 1 / a / 2 2 / a / 3…...

LinkList集合方法(自写)

在使用以下方法时需要定义一个LinkNode类来定义变量&#xff0c;new一个新对象进行调用&#xff0c;输出时需要定义输出方法 public class ListNode {int value;ListNode next;//public ListNode(int value) {this.value value;}public String toString(){return "ListN…...

Ansible playbook自动化运维工具详解

Ansible playbook自动化运维工具详解 一、playbook的相关知识1.1、playbook 的简介1.2、playbook的 各部分组成 二、基础的playbook剧本编写实例三、 playbook的定义、引用变量3.1、基础变量的定义与引用3.2、引用fact信息中的变量 四、playbook中的when条件判断和变量循环使用…...

图像切分:将一张长图片切分为指定长宽的多张图片

1.需求 比如有一张很长的图片其大小为宽度779&#xff0c;高度为122552&#xff0c;那我想把图片切分为779乘以1280的格式。 步骤如下&#xff1a; 使用图像处理库&#xff08;如PIL或OpenCV&#xff09;加载原始图片。确定子图片的宽度和高度。计算原始图片的宽度和高度&am…...

ROS学习笔记(5):ros_control

1.ros_control简介 ros_control - ROS Wiki ros_control是为ROS提供的机器人控制包&#xff0c;包含一系列控制器接口、传动装置接口、控制器工具箱等,有效帮助机器人应用功能包快速落地&#xff0c;提高开发效率。 2.ros_control框架 ros_control总体框架&#xff1a; 针对…...

《008.Springboot+vue之自习室选座系统》

[火]《008.Springbootvue之自习室选座系统》 项目简介 [1]本系统涉及到的技术主要如下&#xff1a; 推荐环境配置&#xff1a;DEA jdk1.8 Maven MySQL 前后端分离; 后台&#xff1a;SpringBootMybatisredis; 前台&#xff1a;vueElementUI; [2]功能模块展示&#xff1a; 前端…...

道可云元宇宙每日资讯|5G数智新时代元宇宙发展论坛在厦门举办

道可云元宇宙每日简报&#xff08;2023年11月6日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 5G数智新时代元宇宙发展论坛在厦门举办 3日&#xff0c;由2023年中国金鸡百花电影节执委会主办、厦门电影节有限公司协办的“5G数智新时代元宇宙发展论坛暨‘中国白德…...

使用 Go 写入文件

在本教程中&#xff0c;我们将学习如何使用 Go 将数据写入文件。我们还将学习如何同时写入文件。 本教程有以下部分 将字符串写入文件将字节写入文件逐行将数据写入文件附加到文件同时写入文件 由于 Playground 不支持文件操作&#xff0c;请在本地系统中运行本教程的所有程…...

调用DeleteLocalRef的正确姿势

做安卓jni相关开发的总会在涉及到jni变量释放时怀疑人生&#xff0c;what? where? when? who? why? how? how much? 最近碰到一个比较奇怪的问题&#xff0c;有一个jni方法的耗时在随着调用次数的增加而上涨&#xff0c;但是没有明显的内存泄漏&#xff0c;经过我缜密分…...

抖音小店从0到1起店流程,实操经验分享!

我是电商珠珠 很多人在开店之后&#xff0c;并不知道怎么做。往往会有人跑来问我说&#xff0c;开店之后怎么做啊&#xff0c;流程方面我还不是很熟悉啊等等。 这份起店流程备好了&#xff0c;将来对你有用。 第一步&#xff0c;店铺基础设置 在店铺开好之后&#xff0c;不…...

MySQL权限

权限 MySQL 允许客户端用户连接到服务器并访问服务器管理数据&#xff0c;MySQL 用户权限系统的主要功能是对给定主机连接的用户进行身份验证&#xff0c;并将该用户与数据库的权限相关联。 在 MySQL8 之前&#xff0c;授权表使用 MyISAM 并且是非事务性的&#xff0c;在 MyS…...

Nginx服务器安装证书并启用SSL(acme.sh)

前提 您已购置vps服务器&#xff0c;例如阿里云全球站ecs、AWS EC2、Azure VM、GCP Compute等安全组已开启80、443端口&#xff0c;且访问源设置为0.0.0.0/0域名已设置A记录指向当前操作服务器&#xff0c;若您使用aws ec2&#xff0c;有公有 IPv4 DNS&#xff0c;可供使用 安…...

c++实现观察者模式

前言 我觉得这是最有意思的模式&#xff0c;其中一个动&#xff0c;另外的自动跟着动。发布-订阅&#xff0c;我觉得很巧妙。 代码 头文件 #pragma once #include<vector> #include<string> #include<iostream>// 抽象观察者 class Aobserver { public:v…...

C 语言左移位操作在kernel驱动子系统中的特殊用途

文章目录 前言一、C语言左移位操作介绍1. 左移位二、左移位操作在kernel 驱动子系统中的应用1. 左移位操作在 V4L2, Media 子系统中的应用实例2.左移位操作在 DRM 子系统中的应用实例2.1 左移位操作在struct drm_crtc 中的应用2.2 左移位操作在struct drm_encoder 中的应用总结…...

kafka3.6.0集群部署

环境准备 机器环境 系统主机名IP地址centos7.9kafka01192.168.200.51centos7.9kafka02192.168.200.52centos7.9kafka03192.168.200.53 所需软件 jdk-8u171-linux-x64.tar.gzapache-zookeeper-3.8.3-bin.tar.gz https://dlcdn.apache.org/zookeeper/zookeeper-3.8.3/apache-zook…...

JAVA客户端使用账号密码调用influxdb2报错:{“code“:“unauthorized“,“message“:“Unauthorized“}

问题&#xff1a;JAVA客户端访问influxdb2报错 说明&#xff1a;当前influxdb版本&#xff1a;2.6.1 使用依赖&#xff1a; <dependency><groupId>org.influxdb</groupId><artifactId>influxdb-java</artifactId><version>2.10</vers…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...

MyBatis中关于缓存的理解

MyBatis缓存 MyBatis系统当中默认定义两级缓存&#xff1a;一级缓存、二级缓存 默认情况下&#xff0c;只有一级缓存开启&#xff08;sqlSession级别的缓存&#xff09;二级缓存需要手动开启配置&#xff0c;需要局域namespace级别的缓存 一级缓存&#xff08;本地缓存&#…...

6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础

第三周 Day 3 &#x1f3af; 今日目标 理解类&#xff08;class&#xff09;和对象&#xff08;object&#xff09;的关系学会定义类的属性、方法和构造函数&#xff08;init&#xff09;掌握对象的创建与使用初识封装、继承和多态的基本概念&#xff08;预告&#xff09; &a…...