【Linux】C语言实现超级简单进度条!你不会还不知道吧?


目录

1. 基础准备🎍

1.1 \r&&\n

1.2 缓冲区

2. 进度条1.0🥀

2.1 Process.h

2.2 Process.c

2.3 Main.c

2.4 Makefile

3.进度条 2.0🪺

3.1 Process.h

3.2 Process.c

3.3 Main.c


1. 基础准备🎍

1.1 \r&&\n

回车和换行是2个动作:
换行:换到新的一行(默认末尾)
回车:回到新的一行的最开始

\n既可以是回车也可以是换行
但是\r是真正的回车,只有当\r\n(2个一起出现)时\n才会执行换行


1.2 缓冲区

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

什么现象??

一开始屏幕就打印出内容过一会之后程序运行结束

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

什么现象??

内容没有先在屏幕上显示出来而是最后结束的时候才显示---先printf后sleep(和上一个执行顺序一样)


sleep期间,代码存储在缓冲区,sleep结束之后代码出现在显示器上

一般来说,程序结束(1. 遇到\n  2. 缓冲区满了  3.强制刷新)时会自动刷新缓冲区

但是有没有方法立即刷新缓冲区?

flush(stdout);

2. 进度条1.0🥀

目标:1. #一直++  2. 进度显示  3.  光标闪烁

这里我们是在vim中实现的

版本1.0:从0一直到100.0的进度条

版本2.0:从0到任意进度的进度条

2.1 Process.h


2.2 Process.c


2.3 Main.c


2.4 Makefile



3.进度条 2.0🪺

3.1 Process.h


3.2 Process.c


3.3 Main.c



本次的分享到这里就结束了!!!

PS:小江目前只是个新手小白。欢迎大家在评论区讨论哦!有问题也可以讨论的!期待大家的互动!!!

拜托了帮帮我点赞👍+收藏⭐️+关注➕(这对我真的很重要!!!)


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

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

相关文章

关于信号强度单位dB和dBm区别

dB&#xff0c;dBm 都是功率增益的单位&#xff0c;不同之处如下&#xff1a; 一、dB 是一个相对值&#xff0c;表示两个量的相对大小关系&#xff0c;没有单位。当考虑甲的功率相比于乙功率大或小多少个dB时&#xff0c;按下面的计算公式&#xff1a;10log&#xff08;甲功率/…

WPF真入门教程29--MVVM常用框架之MvvmLight

1、MVVM模式回顾 关于mvvm模式的基础知识&#xff0c;请看这2个文章&#xff1a; WPF真入门教程23--MVVM简单介绍 WPF真入门教程24--MVVM模式Command命令 做过VUE开发或微信小程序开发的伙伴&#xff0c;就知道MVVM模式&#xff0c;核心就是数据驱动控件&#xff0c;全栈开…

基于SpringBoot的家教管理系统

基于SpringBootVue的家教管理系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatis工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 前台主页 家教 个人中心 管理员界面 摘要 本文介绍了基于SpringBoot框架开发的家…

如何正确设置CrossOver之偏好设置 crossover软件使用 crossover设定 crossover软件安装

CrossOver的核心是Wine&#xff0c;Wine是一个能在多种POSIX-compliant操作系统&#xff08;如&#xff1a;Linux、Mac OS等&#xff09;上运行Windows应用的兼容层。Wine不是Windows的模拟工具&#xff0c;它是把Windows API 调用翻译成为动态的 POSIX 调用&#xff0c;实现Li…

Docker部署Mysql8.0.2

1、 搜索Mysql docker search mysql 2、 精准搜索Mysql8.0.2 docker search mysql:8.0.2 3、 拉取镜像 docker pull mysql:8.0.2 4、 启动镜像 docker run --name mysql -id -p 3306:3306 -v /temp/mysql/log:/logs -v /temp/mysql/data:/var/lib/mysql -e MYSQL_ROOT…

03 基本指令 1

linux的命令选项都可以同时叠加多个 ls 语法&#xff1a;ls [选项][目录或文件] 功能&#xff1a;对于目录&#xff0c;命令列出该目录下所有子目录与文件。对于文件&#xff0c;列出文件名以及其他信息 常用选项&#xff1a; -a 列出目录下所有文件&#xff0c;包括.开头的…

电子元件分销商

Top 10 Active Electronic Parts Distributors List – 2022 / 2023 一家从众多制造商那里收购所有电子元件并销售给客户的公司被称为电子元件分销商。 A company that acquires all electronic components from numerous manufacturers and sells them to customers from a si…

2024/2/17 图论 最短路入门 dijkstra 1

目录 算法思路 Dijkstra求最短路 AcWing 849. Dijkstra求最短路 I - AcWing 850. Dijkstra求最短路 II - AcWing题库 最短路 最短路 - HDU 2544 - Virtual Judge (vjudge.net) 【模板】单源最短路径&#xff08;弱化版&#xff09; P3371 【模板】单源最短路径&#xf…

Stable Diffusion——文生图界面参数讲解与提示词使用技巧

Clip终止层数 什么是Clip CLIP&#xff08;Contrastive Language-Image Pretraining&#xff09;是由OpenAI于2021年开发的一种语言图像对比预训练模型。其独特之处在于&#xff0c;CLIP模型中的图像和文本嵌入共享相同的潜在特征空间&#xff0c;这使得模型能够直接在图像和文…

thinkphp5.1 phpexcel 批量导入导出

1.批量导入 public function importExcel(){$authority $this->getUserAuthority(order_input, batch_import);if ($authority[code] ! 0) {return json($authority);}$file request()->file(files);if(empty($file)){return printMsg(-1, "请上传文件");}/…

开发技术-Java 获取集合中元素下标并移动至指定位置

1. 说明 某些业务需要特定的元素在列表的最后或者指定位置展示。 2. 代码 import lombok.AllArgsConstructor; import lombok.Data;import java.util.*; import java.util.stream.Collectors; import java.util.stream.IntStream;Data AllArgsConstructor class Student {St…

CMNet:Contrastive Magnification Network for Micro-Expression Recognition 阅读笔记

AAAI 2023的一篇文章&#xff0c;东南大学几位老师的工作&#xff0c;用于做微表情识别中的运动增强工作&#xff0c; 以下是阅读时记录的笔记。 摘要&#xff1a; However,existing magnification strategies tend to use the features offacial images that include not onl…

喝多少瓶汽水

喝多少瓶汽水 题目描述&#xff1a;解法思路&#xff1a;解法代码&#xff1a;运行结果: 题目描述&#xff1a; 水已知1瓶汽水1元&#xff0c;2个空瓶可以换⼀瓶汽水&#xff0c;输入整数n&#xff08;n>0&#xff09;&#xff0c;表示n元钱&#xff0c;计算可以多少汽水&a…

【Vuforia+Unity】AR06-空间环境识别功能(AreaTargets)

Vuforia原理:把被识别的物体转成图、立体图、柱形图,3D模型、环境模型,然后模型生成Vuforia数据库-导入Unity-参考模型位置开始摆放数字内容,然后参考模型自动隐藏-发布APP-识别生活中实物-数字内容叠加上去! 不论你是否曾有过相关经验,只要跟随本文的步骤,你就可以成功…

mybatis-plus 基础使用

1、mybatis-plus 简介 MyBatis-Plus (opens new window)&#xff08;简称 MP&#xff09;是一个 MyBatis (opens new window)的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 2、特性 1&#xff09;、无侵入&#xff1a…

Nginx知识笔记

一、前言 首先&#xff0c;我们来看一张关于正向代理和反向代理的图片 简单理解正向代理和反向代理的概念&#xff1a; 正向代理&#xff1a;在客户端配置代理服务器(和跳板机功能类似&#xff0c;比如公司很多机器需要通过跳板机才允许登录&#xff0c;正向代理的典型用途是…

【MySQL】数据类型——MySQL的数据类型分类、数值类型、小数类型、字符串类型

文章目录 MySQL数据类型1. 数值类型1.1 tinyint类型1.2 bit类型1.3 小数类型1.3.1 float1.3.2 decimal 2.字符串类型2.1 char2.2 varchar2.3 char和varchar比较2.4 日期和时间类型2.5 enum和set MySQL 数据类型 MySQL 是一个流行的开源关系型数据库管理系统。它支持多种数据类型…

java:Java中的数组详解

目录 Java数组的定义和特点&#xff1a; Java数组的初始化和赋值 Java数组的常用操作 1. 遍历数组 2. 获取数组长度 3. 访问数组元素 4. 数组的拷贝 多维数组 数组的排序和查找 冒泡排序&#xff1a; 快速排序 &#xff1a; 二分查找&#xff1a; 数组的应用&#xff1a; Java数…

数字滚动实现

介绍 vue-countup-v3 插件是一个基于 Vue3 的数字动画插件&#xff0c;用于在网站或应用程序中创建带有数字动画效果的计数器。通过该插件&#xff0c;我们可以轻松地实现数字的递增或递减动画&#xff0c;并自定义其样式和动画效果。该插件可以用于许多场景&#xff0c;例如展…

Spring Boot 参数校验机制原理以及如何实现一个自定义校验注解

Spring Boot 参数校验原理 Spring Boot 提供了一种方便的参数校验机制&#xff0c;借助于 JSR-303&#xff08;Bean Validation&#xff09;规范&#xff0c;通过在方法参数上添加校验注解来实现参数校验。下面是 Spring Boot 参数校验的基本原理&#xff1a; JSR-303 标准注解…