【Linux】08.Linux 下的第一个小程序——进度条

news2024/12/23 11:30:05

一、知识引入

在写我们的进度条之前需要先引入一下小的知识点:换行与回车,认识缓冲区,认识格式化输出

1.1 换行与回车

换行指的是跳转到下一行的同一个位置
回车指的是跳转到本行开头的位置
新起一行就是换行+回车

但是日常生活中我们见到的换行一般都是使用Enter(回车键)进行的,只是因为特殊处理的缘故
换行的符号是\n,回车的符号是r

1.2 认识缓冲区

我们先引入一个函数sleep(time_t),它的作用就是休眠,单位是秒,头文件是<unistd.h>
接下来我们看下面两端代码
在这里插入图片描述

通过执行,我们发现下面的代码是先打印然后休眠;而上面的代码是先休眠然后打印的。而我们又知道C语言编译器会从上到下的扫描代码,因此输出操作一定是先读入的。那么为什么会造成这样的差异呢?这就是缓冲区的缘故了。
\n是缓冲区的刷新标准符,用以刷新stdout。而没加\n的输出内容被加载到了缓冲区,至于刷新缓冲区才能成功显示内容。
那么我们如何对缓冲区进行刷新呢?对语句进行回车并使用fflush()函数
我们尝试一下发现可以了。
在这里插入图片描述

1.3 认识格式化输出

我们刚刚虽然打印成功输出了,但是休眠完成后发现语句被覆盖了,这又是怎么回事呢?
我们来进行下面这样一个程序:
在这里插入图片描述
我们通过允许发现最后的打印是" 1",我们不是从10打印到1吗?为什么后面会多出来一个0呢?
这就不得不谈到格式化输出了,其实我们也不难发现,实际上我们所看到的数字被解析成了一个个字符然后打印在屏幕上。

二、进度条小程序的编写

我们上面已经了解到了sleep()这个函数,但是他的单位是秒,usleep()也是休眠函数,但它的单位是微秒。
接下来我们写一个简单的进度条小程序:
在这里插入图片描述

但是现实中我们的这个进度条并不仅仅是计数这么简单,接下来我们模拟网络下载数据写一个进阶版的进度条:
在这里插入图片描述

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

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

相关文章

驾驭Python与MySQL的桥梁:pymysql的神秘面纱

文章目录 **驾驭Python与MySQL的桥梁&#xff1a;pymysql的神秘面纱**背景&#xff1a;为何选择pymysql&#xff1f;库的简介安装指南简单的库函数使用方法场景应用常见问题与解决方案总结 驾驭Python与MySQL的桥梁&#xff1a;pymysql的神秘面纱 背景&#xff1a;为何选择pym…

Django Admin对自定义的计算字段进行排序

通常&#xff0c;Django会为模型属性字段&#xff0c;自动添加排序功能。当你添加计算字段时&#xff0c;Django不知道如何执行order_by&#xff0c;因此它不会在该字段上添加排序功能。 如果要在计算字段上添加排序&#xff0c;则必须告诉Django需要排序的内容。你可以通过在…

Ollama-AI大模型本地运行工具,Windows安装详细步骤

一、关于Ollama 1.1 简介 Ollama是一个专为在本地环境中运行和定制大型语言模型而设计的工具。它提供了一个简单而高效的接口&#xff0c;用于创建、运行和管理这些模型&#xff0c;同时还提供了一个丰富的预构建模型库&#xff0c;可以轻松集成到各种应用程序中。Ollama的目…

MySQL——索引管理

目录 一、索引的概述 1、索引的概念 2、索引的作用 3、索引的副作用 4、创建索引的原则依据 5、索引的分类 二、索引的管理 1、查看索引 2、创建索引 2.1、创建普通索引 2.2、创建唯一索引 2.3、创建主键索引 2.4、创建组合索引 2.5、创建全文索引 3、删除索引 …

Vue3项目开发——新闻发布管理系统(五)

文章目录 七、登录&注册页面设计开发4、后端接口调用4.1 AXIOS请求工具封装4.2 创建 axios 实例①安装 axios② 封装 axios 模块4.3完成 axios 基本配置5 实现 注册功能5.1 创建接口调用js文件5.2 页面中调用注册方法6 实现 登录功能6.1 创建接口调用js文件6.2 页面中调用登…

VirtualBox 中 Ubuntu 系统在桥连模式下网络适配器启动过慢或连接失败

一个&#xff08;无线或有线&#xff09;网卡同时为虚拟机和电脑提供网络。 一、技术基础 网络桥接技术&#xff1a; 网卡可以通过桥接模式与虚拟机的网络接口进行连接。在这种模式下&#xff0c;网卡会创建一个虚拟的网桥&#xff0c;将虚拟机的网络接口与物理网络接口&…

基础闯关5

一、XTuner简介 XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。 高效 支持大语言模型 LLM、多模态图文模型 VLM 的预训练及轻量级微调。XTuner 支持在 8GB 显存下微调 7B 模型&#xff0c;同时也支持多节点跨设备微调更大尺度模型&#xff08;70B&#xff09;。自…

视频编码标准化组织介绍

ITU ITU&#xff0c;即International Telecommunication Union&#xff0c;国际电信联盟&#xff0c;是一个专门负责信息通信技术&#xff08;Information and Communication Technologies&#xff0c;ICT&#xff09;领域的联合国机构。它成立于1865年&#xff0c;最初是为了协…

彻底改变计算机视觉的 Vision Transformer (ViT) 综合指南(视觉转换器终极指南)

欢迎来到雲闪世界。大家好&#xff01;对于那些还不认识我的人&#xff0c;我叫 Francois&#xff0c;我是 Meta 的研究科学家。我热衷于解释先进的 AI 概念并使其更容易理解。 今天&#xff0c;让我们深入探讨计算机视觉领域最重要的贡献之一&#xff1a;Vision Transformer&…

Debezium+Kafka:Oracle 11g 数据实时同步至 DolphinDB 运维手册

目前我们已经支持基于开源技术 Debezium Kafka&#xff0c;从 Mysql 和 Oracle 11g 实时同步数据到 DolphinDB 中。由于当前方案涉及到四个程序的部署&#xff0c;而且具体的 Source 同步任务和 Sink 同步任务还需要额外管理&#xff0c;在运维上具有一定难度。 本文将基于 O…

分类预测|基于鲸鱼优化WOA最小二乘支持向量机LSSVM的数据分类预测Matlab程序WOA-LSSVM 多特征输入多类别输出

分类预测|基于鲸鱼优化WOA最小二乘支持向量机LSSVM的数据分类预测Matlab程序WOA-LSSVM 多特征输入多类别输出 文章目录 一、基本原理1. 最小二乘支持向量机&#xff08;LSSVM&#xff09;LSSVM的基本步骤&#xff1a; 2. 鲸鱼优化算法&#xff08;WOA&#xff09;WOA的基本步骤…

安装 rocky9.4

涉及软件&#xff1a;virtualbox、rocky linux 9.4、mobaxterm virtualbox新建虚拟机&#xff0c;设置虚拟机配置 启动虚拟机&#xff0c;第一次会提示挂载虚拟光盘&#xff0c;选择下载的rocky linux 9.4。 选择第一项&#xff0c;安装rocky linux 9.4 进入安装设置&#…

echarts graphChart关系图简单逻辑实现

ECharts 的 graph 图表类型非常适合用来展示节点之间的关系&#xff0c;比如社交网络分析、系统架构图等。下面是一个简单的关系图功能&#xff0c;用来展示疾病与一些因素的关联关系。 1、数据之间的关系 首先&#xff0c;你需要准备数据来表示节点&#xff08;nodes&#…

C ++初阶:类和对象(中)

目录 &#x1f31e;0.前言 &#x1f688;1. 类的6个默认成员函数 &#x1f688;2. 构造函数 &#x1f69d;2.1 概念 &#x1f69d;2.2特性 &#x1f69d;2.3编译器默认生成的构造函数。 ✈️补充1&#xff1a; ✈️补充2&#xff1a;开空间问题 &#x1f688;3. 析构函…

C++相关概念和易错语法(30)(异常、智能指针)

1.异常 在C语言这样的面向过程编程的语言来说&#xff0c;处理错误一般有两种方式&#xff1a;终止程序&#xff0c;如assert&#xff1b;返回错误码&#xff0c;比如打开文件失败&#xff0c;errno就会改变&#xff0c;perror就会打印错误码对应的错误信息 在面向对象的语言…

云原生存储Rook部署Ceph

Rook 是一款云原生存储编排服务工具&#xff0c;Ceph 是一种广泛使用的开源分布式存储方案&#xff0c;通过Rook 可以大大简化 ceph 在 Kubernetes 集群中的部署和维护工作。 Rook 由云原生计算基金会( CNCF )孵化&#xff0c;且于 2020 年 10 月正式进入毕业阶段。Roo…

【python因果推断库3】使用 CausalPy 进行贝叶斯geolift 分析

目录 导入数据 丹麦的销售额是否有地理提升&#xff08;GeoLift&#xff09;&#xff1f; 结果 本笔记本介绍如何使用 CausalPy 的贝叶斯{术语}合成控制功能来评估“地理提升”&#xff08;GeoLift&#xff09;。我们的假设情景如下&#xff1a; 你是一家在欧洲运营的公司的…

集成电路学习:什么是ISP系统编程

一、ISP&#xff1a;系统编程 ISP&#xff08;In-System Programming&#xff09;即系统编程&#xff0c;是一种在系统内部进行的编程方法&#xff0c;主要用于对闪存&#xff08;FLASH&#xff09;、EEPROM等非易失性存储器的编程。ISP编程提供了巨大的灵活性&#xff0c;允许…

SaaS用户增长:提升转化率的实践路径

在SaaS&#xff08;软件即服务&#xff09;行业这片竞争激烈的蓝海中&#xff0c;企业要实现稳健的用户增长&#xff0c;必须聚焦于优化用户获取与转化策略&#xff0c;以提升用户转化率。用户转化率&#xff0c;作为衡量SaaS产品市场吸引力和用户接纳度的核心指标&#xff0c;…

图文解析保姆级教程: IDEA里面创建SpringBoot工程、SpringBoot项目的运行和测试、实现浏览器返回字符串

文章目录 一、创建SpringBoot工程&#xff08;需要联网&#xff09;二、 定义请求处理类三、运行测试 此教程摘选自我的笔记&#xff1a;黑马JavaWeb开发笔记13——Springboot入门&#xff08;创建、运行&测试项目&#xff09;、Http协议&#xff08;请求&响应协议&…