git简单介绍,回车换行问题,倒计时+进度条小程序的实现+代码

目录

git--版本控制工具

介绍

使用

小程序

引入

回车换行问题

缓冲区问题

倒计时

分析

代码

进度条

分析

代码


git--版本控制工具

首先,我们需要下载git : yum install git

介绍

  • Git是一种分布式版本控制系统,用于跟踪文件和目录的变化并协调多个人之间的协作开发
  • Git的基本概念包括代码仓库(repository)、提交(commit)、分支(branch)、合并(merge)、克隆(clone)、推送(push)、拉取(pull)等
  • 开发者可以使用命令行工具或图形化界面工具(如Git GUI、GitKraken、SourceTree等)来使用Git进行版本控制操作

  • 总结来说,Git是一种强大的分布式版本控制系统,具有分支支持、高性能、数据完整性等特点, 它被广泛应用于各种软件开发项目中,为开发者提供了有效的协作和版本控制能力
  • 但是,我目前的状态还用不到git这么强大的功能(跪),也就是提交下写的代码而已

使用

这里是git向gitub提交代码的过程

  • 当然,前提是,你当前处于 将远端仓库克隆到你linux下的本地仓库 的目录中(git clone + ssh/https)
  • 如何克隆呢,你需要一个gitub账号,以及在你linux下生成一个ssh,将该ssh填入你gitub上的ssh中
  • 之后,将 你想要提交代码的仓库 的ssh拷贝下来,进行克隆,即可
  • (我这里是在云服务器的linux系统下完成的,其他的就不知道了)

 

小程序

引入

首先,下面两个程序都和我们熟悉的回车换行有很大关联,我们接下来来聊聊吧~

回车换行问题

  • 我们每次按下回车键时,当前光标会到下一行的开头
  • 而且我之前以为按下回车键就是输入'\n',但'\n'仅仅只能换行
  • 那么光标回到开头是如何实现的呢?其实是回车符'\r'起的作用
  • 我们平时按的回车键 以及 代码中的\n,其实暗地里都变成了'\r\n'
  • 因此我们在打印的时候,每次打印一行,每一行都从开头开始

除了回车换行的问题,还有缓冲区的问题

缓冲区问题

我们执行printf的时候,如果单纯的输出一句话,但是没有\n的话

 我们会在9s之后才能看到要打印的字符串

 然而,加上\n的话 ,可以立即看到输出

这里就可以看出来:

  • 其实存在一块输出缓冲区,将我们要输出的内容先暂时存储起来,等到刷新缓冲区时,才会打印到显示器上
  • 而输出缓冲区其实就是c语言为我们提供的一块内存空间,根据特定的刷新策略进行刷新
  • 显示器设备一般的刷新规则就是:行刷新
  • 也就是遇到\n后,才把\n之前的内容全部刷新到设备上

如果想要手动刷新缓冲区的话,可以使用fflush()函数

知道这两个问题后,就可以完成下面的代码了!

倒计时

分析

我们平时看到的倒计时就是,在一定字符的大小的位置,每隔一段时间,该位置就会显示一个数字,并且这个数字是逐渐减小的

  • 那么,从代码角度来说,我们不能使用\n,这样我们每一个数字都会在上一个数字的下一行显示,不符合我们的预期
  • 由于每打印一个字符,光标会自动向右移动一格,但我们要保证原地打印
  • 因此每次都要将光标移到起始位置,也就是需要使用\r
  • 由于使用的是\r,因此我们需要手动刷新缓冲区,不然无法及时看到打印的数字

代码

#include<stdio.h>
#include<unistd.h>
#include<string.h>int main(){int count=5;while(count--){printf("%d\r",count);fflush(stdout);sleep(1);}return 0;
}

进度条

分析

平时看到的进度条,就是从0开始,进度条不断增长,并且也有x%这样的数字在不断递增,最终到达100%

  • 从代码角度来说呢,我们需要将打印的字符串每次增加一个字符,而且不能有\n!
  • 而且每次打印出来都要在原先的位置,所以需要使用\r来移动光标(和上个程序思路是差不多der)
  • 我们除了这些,还可以简单制作一个动图的效果,可以将\ | - / 这四个符号不断更替,只要打印时间间隔适宜,就可以得到 一根棍 旋转的效果

代码

#include<stdio.h>
#include<string.h>
#include<unistd.h>#define num 100int main(){char buf[num+1]={0}; /为了放下\0const char* symbol="|/-\\";int i=1;buf[0]='<';while(i<=num){printf("[%-100s][%d%%][%c]\r",buf,i,symbol[i%4]);fflush(stdout);if(i==num-1){buf[i]='>';}else{buf[i]='=';}i++;usleep(50000); /sleep的单位是s,太慢啦,usleep的单位是ms,便于观看}printf("\n");return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/177172.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常用 sqlite3 命令

本次将向您讲解 SQLite 编程人员所使用的简单却有用的命令。这些命令被称为 SQLite 的点命令&#xff0c;这些命令的不同之处在于它们不以分号 ; 结束。 让我们在命令提示符下键入一个简单的 sqlite3 命令&#xff0c;在 SQLite 命令提示符下&#xff0c;您可以使 用各种 …

新晋“断货王”!西圣Olite开放式耳机掀起抢购热潮,双十一首日售罄!

在双十一首日&#xff0c;西圣olite开放式耳机凭借其超高性价比&#xff0c;一举拿下“断货王”称号&#xff0c;在双十一首日已售罄&#xff0c;现在在各大电商平台均显示无货。 这一消息引起了社交媒体的热议&#xff0c;除了其超高性价比&#xff0c;性能可以媲美千元级别耳…

操作系统 day02(特征和发展历程)

一&#xff0c;操作系统的特征 并发和并行 共享 并发和共享互为存在条件 虚拟 异步 综上所述&#xff1a; 二&#xff0c;操作系统的发展历程

使用Ansible中的playbook

目录 1.Playbook的功能 2.YAML 3.YAML列表 4.YAML的字典 5.playbook执行命令 6.playbook的核心组件 7.vim 设定技巧 示例 1.Playbook的功能 playbook 是由一个或多个play组成的列表 Playboot 文件使用YAML来写的 2.YAML #简介# 是一种表达资料序列的格式,类似XML #特…

阿里云无影升级2.0 云电脑解决方案时代到来

10月31日&#xff0c;杭州云栖大会上&#xff0c;阿里云宣布无影全新升级2.0&#xff1a;从云电脑到云上解决方案&#xff0c;帮助中小企业更便捷地构建云上办公&#xff0c;并开放无影产品及解决方案能力&#xff0c;为生态合作伙伴提供企业云平台&#xff0c;帮助其打造定制化…

Mozilla Firefox 119 现已可供下载

Mozilla Firefox 119 开源网络浏览器现在可以下载了&#xff0c;是时候先看看它的新功能和改进了。 Firefox 119 改进了 Firefox View 功能&#xff0c;现在可以提供更多内容&#xff0c;如最近关闭的标签页和浏览历史&#xff0c;你可以按日期或网站排序&#xff0c;还支持查…

【设计模式】第24节:行为型模式之“模板方法模式”

一、简介 模板方法模式在一个方法中定义一个算法骨架&#xff0c;并将某些步骤推迟到子类中实现。模板方法模式可以让子类在不改变算法整体结构的情况下&#xff0c;重新定义算法中的某些步骤。 模板模式有两大作用&#xff1a;复用和扩展。其中&#xff0c;复用指的是&#…

10.31日模拟赛总结

文章目录 考试时间及策略考试结果考试反思题解A.进步科学B.吉吉没急C.老杰克哒D.季积晓淆 考试时间及策略 没啥好说的&#xff0c;因为好像都不会。所以全场感觉都在罚坐&#xff0c;很痛苦。 考试结果 30 0 50 5 85 考试反思 T1&#xff1a;T1是个神奇状压&#xff0…

【java学习—十一】泛型(1)

文章目录 1. 为什么要有泛型Generic2. 泛型怎么用2.1. 泛型类2.2. 泛型接口2.3. 泛型方法 3. 泛型通配符3.1. 通配符3.2. 有限制的通配符 1. 为什么要有泛型Generic 泛型&#xff0c;JDK1.5新加入的&#xff0c;解决数据类型的安全性问题&#xff0c;其主要原理是在类声明时通过…

通过Google搜索广告传送的携带木马的PyCharm软件版本

导语 最近&#xff0c;一起新的恶意广告活动被发现&#xff0c;利用被入侵的网站通过Google搜索结果推广虚假版本的PyCharm软件。这个活动利用了动态搜索广告&#xff0c;将广告链接指向被黑客篡改的网页&#xff0c;用户点击链接后下载的并不是PyCharm软件&#xff0c;而是多种…

矢量图形编辑软件illustrator 2023 mac中文软件特点

illustrator 2023 mac是一款矢量图形编辑软件&#xff0c;用于创建和编辑排版、图标、标志、插图和其他类型的矢量图形。 illustrator 2023 mac软件特点 矢量图形&#xff1a;illustrator创建的图形是矢量图形&#xff0c;可以无限放大而不失真&#xff0c;这与像素图形编辑软…

leetcode:1446. 连续字符(python3解法)

难度&#xff1a;简单 给你一个字符串 s &#xff0c;字符串的「能量」定义为&#xff1a;只包含一种字符的最长非空子字符串的长度。 请你返回字符串 s 的 能量。 示例 1&#xff1a; 输入&#xff1a;s "leetcode" 输出&#xff1a;2 解释&#xff1a;子字符串 &q…

Spire.doc读取模板文档,并在书签处插入内容

在书签位置插入文字 //加载模板文档 Document document new Document(Server.MapPath("~/File/评价结果.doc")); //创建书签导航器 BookmarksNavigator bn new BookmarksNavigator(document); //添加一个section到文档 Section newSec document.AddSection(); …

Java设计模式之命令模式

目录 定义 结构 案例 优点 缺点 使用场景 JDK源码解析 Thread中start与run方法的区别 定义 将一个请求封装为一个对象&#xff0c;使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通&#xff0c;这样方便将命令对象进行存储、传递、调用、增…

字体文件名称成中的Bold, Light,Italic,Regular, Medium是什么意思?

解释 字体文件名&#xff1a; IntelOneMono-Bold.ttf其中IntelOneMono字体名称 Bold 字体的样式 .ttf字体后缀 样式英文 中文Bold粗体BoldItalic粗体斜体Italic斜体Light细体LightItalic斜细体Medium中等MediumItalic中等斜体Regular标准以下来自鸿蒙字体以下来自鸿蒙字体TC…

大坝水库安全监测终端MCU,智能化管理的新篇章!

我国目前拥有超过9.8万座水库大坝&#xff0c;其中超过95%为土石坝&#xff0c;这些大坝主要是在上世纪80年代以前建造的。这些水库大坝在保障防洪、发电、供水、灌溉等方面发挥了巨大的作用&#xff0c;但是同时也存在一定的安全风险&#xff0c;比如坝体结构破损、坝基渗漏、…

基于 Center 的 3D 目标检测和跟踪

论文地址&#xff1a;https://arxiv.org/abs/2006.11275 论文代码&#xff1a;https://github.com/tianweiy/CenterPoint 3D 目标通常表示为点云中的 3D Boxes。 CenterPoint 在第一阶段&#xff0c;使用关键点检测器检测对象的中心&#xff0c;然后回归到其他属性&#xff0…

接入文心一言实战(一):API申请与测试

大家好&#xff0c;我是豆小匠。 这期来介绍申请百度文心一言API的步骤。 第一步 注册百度智能云账号 网址&#xff1a;https://login.bce.baidu.com/new-reg?tplbceplat&fromportal 第二步&#xff1a;申请预置模型 网址&#xff1a;https://console.bce.baidu.com/qi…

在虚拟机centos7中部署docker+jenkins最新稳定版

在虚拟机centos7中部署dockerjenkins最新稳定版 查看端口是否被占用 lsof -i:80 查看运行中容器 docker ps 查看所有容器 docker ps -a 删除容器 docker rm 镜像/容器名称 强制删除 docker rmi -f 镜像名 查看当前目录 pwd 查看当前目录下所有文件名称 ls 赋予权限 chown 777 …

unity中meta文件GUID异常问题

错误信息&#xff1a; The .meta file Assets/Scripts/Editor/ConvertConfigToBinary/TxtConverter.cs.meta does not have a valid GUID and its corresponding Asset file will be ignored. If this file is not malformed, please add a GUID, or delete the .meta file and…