【Linux】简单的小程序:进度条

在学习进度条之前,需要学一点预备知识。

1. 预备知识

  1. 回车换行

现在的换行符(\n )其实就是回车式换行符,另起一行,光标指向最新一行的开头。回车符(\r )是光标指向这一行的开头。

  1. 缓冲区

(1)先上例子

运行后发现,打印hello world后停顿了两秒,再出现命令行。

如果没有打印换行符,发现是先停顿两秒再打印hello world,且命令行没有换行。

C语言执行代码是从上往下的,不可能先睡眠两秒,再打印hello world。在sleep2秒期间,hello world一定被保存起来了!保存在缓冲区 (就是由C语言维护的一段内存)。当程序结束后,缓冲区的数据才刷新出来。

(2)如果我要强制刷新,该怎么做?

fflush用来刷新缓冲区,stdout是显示器(标准输出流)。

  1. 倒计时

/r回到最左位置,会覆盖原先的值。所以如果num是两位数就会出现这种情况。

10的0没有被覆盖,所以如果倒计时是两位数的话,每个数字得占两个位置,且向左对齐。


2. 进度条

版本1

版本2




不会做动图..

相关推荐
牢姐与蒯14 分钟前
Linux信号(一).信号产生
linux·运维·服务器·ubuntu
雯宝6 小时前
mnt_init 函数
linux
律宏阔12 小时前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
律宏阔12 小时前
WSL 突然断网,无法 ping 内网或外网
linux·windows
穷人小水滴12 小时前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
乱码三千12 小时前
如何优雅地直连无公网 IP 的远程 GPU 服务器
linux·人工智能·程序员
yunwei3712 小时前
使用 eBPF 跟踪 Nginx 请求
linux·后端·性能优化
yunwei3712 小时前
使用 eBPF 跟踪 MySQL 查询
linux·后端·性能优化
yunwei3712 小时前
eBPF 示例教程:使用 XDP 捕获 TCP 信息
linux·后端·性能优化
GeW13 小时前
制造业高端化,为什么必须重估Linux和数据库?
linux