【Linux篇】第一个系统程序 - 进度条

文章目录
- 1.回车与换行
- 2.行缓冲区
- 3.倒计时程序
- 4.进度条
1.回车与换行
- 回车的概念: 回到当前行的最开始
\r - 换行的概念: 换到当前行的下一行
\n
2.行缓冲区
- 当我们运行下面这段程序时,我们会发现屏幕上首先会打印出
hello world!,再过两秒后程序结束。

- 当我们把
\n去掉时,我们运行程序时会发现,等待两秒后屏幕上才会打印出hello world!,那么在sleep执行的期间,我们的hello world!保存在哪里呢?
答案: 存在一个叫缓冲区的地方,存在缓冲区那么就会有缓冲区刷新策略!
显示器的刷新策略: 行刷新,如果存在\n,遇到\n就会立即刷新;如果没有\n,该字符串不做刷新,要么程序结束自动刷新,要么我们强制刷新。
- 如果我们想让它强制刷新呢?
-
man fflush
我们c提供了对应的fflush策略,可以直接强制刷新。在我们的c语言当中,我们在printf打印的时候,默认会打开三个文件的输入输出流,分别是:
我们想要字符串立即刷新,只需在字符串后添加fflush(stdout)就行
直接使用该文件流,把字符串立即刷新。
3.倒计时程序
我们首先来编写一个9-0的倒计时

当我们令cnt=10时运行程序就会发现,显示的是90,80,70…,所以我们就要对程序进一步升级。

%-2d表示居左对齐,输出占两个字符的位置,如果字符不足两个,就用空格来代替。
4.进度条
-
展示进度条的基本功能代码

-
进度条Pro版本
main.c代码

process.h代码

process.c代码

- 进度条Pro Max版本
main.c代码


procss.h代码

process.c代码



今天的内容就分享到这里,如果这篇文章对你有帮助,记得点赞,评论+收藏 ,最后别忘了关注作者,作者将带领你探索更多关于Liunx方面的问题。
相关文章:
【Linux篇】第一个系统程序 - 进度条
文章目录 1.回车与换行2.行缓冲区3.倒计时程序4.进度条 1.回车与换行 回车的概念: 回到当前行的最开始 \r换行的概念: 换到当前行的下一行\n 2.行缓冲区 当我们运行下面这段程序时,我们会发现屏幕上首先会打印出hello world!,再过两秒后程序结束。 当我们把\n去掉…...
VLM-E2E:通过多模态驾驶员注意融合增强端到端自动驾驶
25年2月来自香港科大广州分校、理想汽车和厦门大学的论文“VLM-E2E: Enhancing End-to-End Autonomous Driving with Multimodal Driver Attention Fusion”。 人类驾驶员能够利用丰富的注意语义,熟练地应对复杂场景,但当前的自动驾驶系统难以复制这种能…...
如何将飞书多维表格与DeepSeek R1结合使用:效率提升的完美搭档
将飞书的多维表格与DeepSeek R1结合使用,就像为你的数据管理和分析之旅装上一台涡轮增压器。两者的合作,不仅仅在速度上让人耳目一新,更是将智能化分析带入了日常的工作场景。以下是它们如何相辅相成并改变我们工作方式的一些分享。 --- 在…...
Kali CentOs 7代理
工具v2↓ kali_IP段v2端口例子<1> kali_IP段v2端口例子<2> CentOs 7 //编辑配置文件 vi /etc/profile//在该配置文件的最后添加代理配置 export http_proxyhttp://ip:port //代理服务器ip地址和端口号 export https_proxyhttp://ip:port //代理服务器ip地址和…...
Zookeeper 的核心引擎:深入解析 ZAB 协议
#作者:张桐瑞 文章目录 前言ZAB 协议算法崩溃恢复选票结构选票筛选消息广播 前言 ZooKeeper 最核心的作用就是保证分布式系统的数据一致性,而无论是处理来自客户端的会话请求时,还是集群 Leader 节点发生重新选举时,都会产生数据…...
L3-001 凑零钱
L3-001 凑零钱 - 团体程序设计天梯赛-练习集 n, m map(int, input().split()) a list(map(int, input().split())) a.sort() f [[] for _ in range(m 1)] f[0] [0] for i in a:for j in range(m, i - 1, -1):if f[j - i]:if not f[j] or f[j] > f[j - i] [i]:f[j] f…...
命名管道(用命名管道模拟server和client之间的通信)
目录 命名管道创建命名管道使用命令行创建命名管道(FIFO)在程序中创建 命名管道的打开规则用命名管道实现server和client通信 命名管道 bash进程并不会给我们写的两个不同的程序创建通信的管道,即使这两个进程看起来好像都是bash的子进程&am…...
【AI深度学习基础】Pandas完全指南入门篇:数据处理的瑞士军刀 (含完整代码)
📚 Pandas 系列文章导航 入门篇 🌱进阶篇 🚀终极篇 🌌 📌 一、引言 在大数据与 AI 驱动的时代,数据预处理和分析是深度学习与机器学习的基石。Pandas 作为 Python 生态中最强大的数据处理库,以…...
关于opencv中solvepnp中UPNP与DLS与EPNP的参数
The methods SOLVEPNP_DLS and SOLVEPNP_UPNP cannot be used as the current implementations are unstable and sometimes give completely wrong results. If you pass one of these two flags, SOLVEPNP_EPNP method will be used instead.、 由于当前的实现不稳定&#x…...
金融项目实战
测试流程 测试流程 功能测试流程 功能测试流程 需求评审制定测试计划编写测试用例和评审用例执行缺陷管理测试报告 接口测试流程 接口测试流程 需求评审制定测试计划分析api文档编写测试用例搭建测试环境编写脚本执行脚本缺陷管理测试报告 测试步骤 测试步骤 需求评审 需求评…...
大模型小白入门
【课前篇】大模型从0到1指南 【基础篇】大模型的演变与概念 大模型的演变 人工智能:人工智能是一个广泛涉及计算机科学、数据分析、统计学、机器工程、语言学、神 经科学、哲学和心理学等多个学科的领域。 机器学习:机器学习可以分为监督学习&…...
从零到一:快速上手 Poetry——Python 项目管理的利器
在 Python 项目开发中,包管理、依赖管理和虚拟环境的创建一直是开发者们经常面对的难题。传统上,开发者通常会使用 pip、virtualenv 或者 conda 来处理这些问题。然而,随着 Python 项目复杂度的增加,传统工具往往显得力不从心&…...
【量化科普】Beta,贝塔系数
【量化科普】Beta,贝塔系数 🚀量化软件开通 🚀量化实战教程 在量化投资领域,Beta(贝塔系数)是一个衡量投资组合或股票相对于整个市场波动性的指标。它反映了资产收益与市场收益之间的相关性,…...
C++----异常
一、C 语言传统的错误处理方式 在 C 语言中,处理错误主要有两种传统方式,每种方式都有其特点和局限性。 1. 终止程序 原理:使用类似assert这样的断言机制,当程序运行到某个条件不满足时,直接终止程序的执行。示例代…...
合理规划时间,从容应对水利水电安全员考试
合理规划时间,从容应对水利水电安全员考试 在忙碌的工作与生活节奏中备考水利水电安全员考试,合理规划时间是实现高效备考的核心。科学的时间管理能让你充分利用每一分每一秒,稳步迈向考试成功。 制定详细的学习计划是第一步。依据考试时间…...
(解决) Windows 11使用SetSuspendState睡眠命令但是进入的是休眠
Windows 11 24H2 goes into hibernation mode instead of sleep mode. How can I create a sleep mode shortcut file? 25年3月4号 Win11 23H2 起因 使用网上说的睡眠命令创建bat双击后,电脑风扇会运行一段时间后再停止(应该是在保存进程到硬盘&#…...
Spring Boot 接口 JSON 序列化优化:忽略 Null 值的九种解决方案详解
一、针对特定接口null的处理: 方法一:使用 JsonInclude 注解 1.1 类级别:在接口返回的 DTO 类或字段 上添加 JsonInclude 注解,强制忽略 null 值: 类级别:所有字段为 null 时不返回 JsonInclude(Js…...
计算机毕业设计Python+DeepSeek-R1大模型考研院校推荐系统 考研分数线预测 考研推荐系统 考研(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
一、Prometheus架构
Prometheus 云原生十二要素是一套最佳实践和规范,旨在帮助开发人员更好地构建云原生应用 这十二个要素分别是: 单一职责独立部署无状态声明式API服务发现容错处理自适应算法自动化运维响应式编程通信协议服务注册与发现数据持久化一、Prometheus 是什么 Prometheus 是一个…...
火山引擎 DeepSeek R1 API 使用小白教程
一、火山引擎 DeepSeek R1 API 申请 首先需要三个要素: 1)API Key 2)API 地址 3)模型ID 1、首先打开火山引擎的 DeepSeek R1 模型页面 地址:账号登录-火山引擎 2、在页面右下角,找到【推理】按钮&#…...
如何用Python自动化脚本提升大麦网抢票成功率:完整配置指南
如何用Python自动化脚本提升大麦网抢票成功率:完整配置指南 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 还在为抢不到周杰伦、五月天演唱会门票而烦恼吗?大麦网抢票脚本…...
实战解析:HAL库下ADC常规与注入模式在电机控制中的协同采样策略
1. HAL库下ADC双模式协同采样的必要性 在电机控制系统中,信号采集就像给医生做体检——既需要定期检查血压体温(缓变信号),又要在关键时刻做心电图(瞬态信号)。常规转换模式相当于体检中的常规项目…...
ARM核心板存储选型实战:从DDR到eMMC的避坑指南
1. 项目概述:一个被低估的硬件选型难题在嵌入式系统开发,尤其是基于ARM架构的工控和核心板设计中,存储选型常常被新手甚至一些有经验的工程师视为一个“小问题”。不就是选个Flash和RAM吗?很多人会这么想。然而,在我十…...
CANN/asc-devkit SIMD排序函数文档
Sort 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode.com/cann/…...
OpCore-Simplify:如何30分钟完成专业级黑苹果配置
OpCore-Simplify:如何30分钟完成专业级黑苹果配置 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的黑苹果配置而烦恼吗&#x…...
NumPy 2.4.6 快速版发布:修复 2.4.5 回归问题,支持 Python 3.11 - 3.14
NumPy 2.4.6 快速版本现已发布,修复了 2.4.5 版本中的回归问题,支持 Python 3.11 - 3.14 版本,本次共合并 4 个拉取请求。版本发布背景 在 NumPy 2.4.5 版本使用过程中发现了回归问题,为了及时解决这些问题,开发团队迅…...
YOLOv8实时目标检测与自适应控制技术在游戏辅助系统中的应用研究
YOLOv8实时目标检测与自适应控制技术在游戏辅助系统中的应用研究 【免费下载链接】RookieAI_yolov8 基于yolov8实现的AI自瞄项目 AI self-aiming project based on yolov8 项目地址: https://gitcode.com/gh_mirrors/ro/RookieAI_yolov8 技术挑战剖析:实时游…...
为团队 CLI 工具统一配置 Taotoken 作为后端模型服务
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为团队 CLI 工具统一配置 Taotoken 作为后端模型服务 当团队开发的内部命令行工具需要集成大模型能力时,直接对接多个厂…...
为什么92%的研究者搜不到关键书评?Perplexity图书评论搜索的3大认知盲区与实时校准方案
更多请点击: https://codechina.net 第一章:为什么92%的研究者搜不到关键书评? 学术资源检索的失效,往往并非源于信息缺失,而是检索逻辑与出版生态的错位。当前主流学术数据库(如Google Scholar、CNKI、JS…...
新手村通关攻略:大唐杯‘通信技术导论’仿真模块全流程实操解析(含设备配置清单)
大唐杯通信技术仿真实战指南:从零搭建智能通信系统 第一次参加大唐杯的新手们,面对仿真模块里密密麻麻的设备参数和操作界面,是不是有种"我是谁?我在哪?我要点哪里?"的迷茫感?别担心&…...
