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

news2024/11/28 11:36:52

目录

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 100

int main(){
  char buf[num+1]={0}; /为了放下\0
  const 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.coloradmin.cn/o/1160230.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ACID模型

ACID 是数据库管理系统&#xff08;DBMS&#xff09;中用来确保事务处理正确性和可靠性的四个特性的首字母缩写。ACID 是指原子性&#xff08;Atomicity&#xff09;、一致性&#xff08;Consistency&#xff09;、隔离性&#xff08;Isolation&#xff09;和持久性&#xff08…

亚马逊美国站书包,书皮,便当盒,铅笔盒CPC认证

在人们生活中学习用品的种类十分丰富&#xff0c;并且随着社会经济以及现代电子科技的飞速发展&#xff0c;传统的学习用品已经不能满足人们对学习用品的需求&#xff0c;电子学习用品异军突起&#xff0c;受到了越来越多年轻人的青睐。我国庞大的学习用品消费群体每年用于购买…

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

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

CSS标点符号换行问题

最近遇到一个奇怪的现象,元素中中文文本正常显示,但是加了一堆符号后中文文本居然换行了. div{width: 200px;border: 1px solid blue;word-break: break-all;} <div>文本</div>经过研究发现&#xff0c;因为标点符号不允许出现在行首和行尾&#xff0c;连带着符号…

【Linux】第八站:gcc和g++的使用

文章目录 一、解决sudo命令的问题二、Linux编译器-gcc/g1.gcc的使用2.g的使用 三、gcc编译链接过程1.预处理2.编译&#xff08;生成汇编&#xff09;3.汇编&#xff08;生成机器可识别代码&#xff09;4.链接&#xff08;生成可执行文件或库文件&#xff09;5.一些选项的意义 四…

Serverless与AI驱动,阿里云数据库核心能力全面升级!

11月1日&#xff0c;2023杭州云栖大会上&#xff0c;阿里云瑶池数据库宣布已全面实现Serverless化&#xff0c;并接入通义等大模型能力&#xff0c;大幅提升数据库一站式及智能化水平。同时&#xff0c;PolarDB Always On系列推出3大重磅升级&#xff0c;首个数据智能助手DMS C…

阿里云2核2G3M云服务器99元/年,新老同享,续费不涨价!

2023年阿里云双11活动正在火热进行中&#xff0c;推出了一款面向个人开发者、学生、小微企业的年度爆款套餐&#xff0c;2核2G3M云服务器99元/年&#xff0c;新老同享&#xff0c;续费不涨价&#xff01; 一、活动入口 活动地址&#xff1a;传送门>>> 二、活动详情 …

【标准化封装 钽电容封装】Tantalum Capacitors 各种壳

〇、引言 钽电容你见到的是什么封装&#xff1f;7343&#xff1f;那是D壳还是E壳&#xff1f; 有没有PCB焊接调试好&#xff0c;结构缺盖不住盖子了&#xff1f;&#xff1f;&#xff1f; 一、正文 上图片 这个叫黑钽 这个叫黄钽 这个叫啥我也不知道 二、封装 典型厂家壳…

stm32 定时器中断

目录 定时器分类 通用定时器框图 时钟源 内部时钟&#xff08;CK_INT&#xff09; 外部时钟模式 1&#xff08; TI1、 TI2&#xff09; 时钟信号输入引脚 滤波器 如果来自外部的时钟信号的频率过高或者混杂有高频干扰信号的话&#xff0c;我们就需要使用滤波器对信号重新…

入栏需看——管理类联考——英语——知识+记忆篇——导航页

文章目录 Section I Use of English——完型填空Section II Reading ComprehensionPart A——阅读理解 A 节&#xff08;Part A&#xff09;&#xff08;四篇&#xff09;Part B——阅读理解 B 节&#xff08;Part B&#xff09;&#xff08;只有一篇&#xff09;Part C——翻译…

Linux shell编程学习笔记19:until循环语句

Linux shell编程中的until语句&#xff0c;在功能上与其它编程语言一致&#xff0c;但在结构与其它编程语言又不太一样。在大多数编程语言中&#xff0c;until语句的循环条件表达式一般位于循环体语句的后面&#xff0c;但是在Linux shell编程中&#xff0c;until语句的循环条件…

教您如何去除照片上的水印!

许多网友都在寻找方法去除照片上的水印&#xff0c;水印通常用于保护版权或标识来源&#xff0c;但有时候我们可能需要使用带有水印的照片&#xff0c;却又不希望水印影响观感&#xff0c;今天我将向大家介绍两种有效的方法&#xff0c;帮助解决“如何去除照片上的水印”这一难…

从内存管理的角度来看,Python语言的变量和参数传递情况解析

从内存管理的角度来看&#xff0c;Python语言的变量和参数传递情况解析 概述 从内存管理的角度来看&#xff0c;Python中的变量和参数传递有一些特点&#xff1a; ☆ 变量是对象的引用&#xff1a;在Python中&#xff0c;变量实际上是对象的引用&#xff0c;而不是对象本身。…

Mysql数据库 7.SQL语言 关联关系

关联关系介绍 Mysql是一个关系型数据库&#xff0c;不仅可以存储数据&#xff0c;还可以维护数据与数据之间的关系——通过在数据表中添加字段建立约束 数据与数据之间的关联关系&#xff1a; 1.一对一关联 2.一对多关联 3.多对一关联 4.多对多关联 一个表的外键对应另一…

2023年【道路运输企业主要负责人】考试技巧及道路运输企业主要负责人复审模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年【道路运输企业主要负责人】考试技巧及道路运输企业主要负责人复审模拟考试&#xff0c;包含道路运输企业主要负责人考试技巧答案和解析及道路运输企业主要负责人复审模拟考试练习。安全生产模拟考试一点通结合…

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

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

虹科资讯 | 10月智能制造行业动态回顾

文章来源&#xff1a;虹科工业控制 阅读原文&#xff1a;https://mp.weixin.qq.com/s/0jR_QgmR6tmrRoTFAo8mFw 10月&#xff0c;虹科与PLCopen合作开展IEC 61131-3培训&#xff0c;目前正在火热报名中&#xff1b;人工智能领域的迅猛发展引起了智能制造业的广泛关注&#xff…

Flink1.18新特性生产环境应用的重点解读!

大家好&#xff0c;我是你们的群主王知无呀。 Flink 1.18已经于近期发布了。在这个新版本中新增了很多新的功能和特性。在这些特性中&#xff0c;有一些是生产环境非常重要的能力&#xff0c;大家在使用过程中可以重点参考和了解其中的原理。 算子级别状态保留时间TTL设置 首先…

CSS3媒体查询与页面自适应

2017年9月&#xff0c;W3C发布媒体查询(Media Query Level 4)候选推荐标准规范&#xff0c;它扩展了已经发布的媒体查询的功能。该规范用于CSS的media规则&#xff0c;可以为文档设定特定条件的样式&#xff0c;也可以用于HTML、JavaScript等语言。 1、媒体查询基础 媒体查询…

苹果AirTag平替产品选择,国内外支持苹果Find My芯片功耗全面对比

2021年4月20,苹果在春季产品发布会上推出了全新的产品类型- AirTag,将哆啦A梦的追踪徽章带到了现实。这个小产品当年并没有像其它苹果新品那样一朝爆红。随着年轮缓缓而坚定地前行, AirTag也缓缓而坚定地前行,并被越来越多的人接受和喜欢。 深入思考AirTag背后的产品逻辑和实现…