0


【LINUX】在LINUX上写一个滚动公告条小程序

在这里插入图片描述

✔️本文主题:LINUX
✔️本文作者:蓝色学者

滚动公告条目录

一、前言

大家好久不见,今天我们利用一点缓冲区、回车换行的小知识来实现一个滚动公告条小程序
公告条效果:
在这里插入图片描述

二 、‘\r’ 和 ‘\n’

\r回车将光标移动到

下一行

原地\n换行将光标移动到**

当前行

**起点
在现在的操作系统中,‘\r’ 和’\n’组合成了一个新的按键——enter也就是\n+\r(先回车再移动光标到起点)

三、行缓冲区和fflsuh

①行缓冲区

在正式模拟滚动公告条之前,我们要了解一组相关概念

首先我们要求清楚,就像我们在使用输入法打字的时候,只有我们摁下回车键的时候,我们书写的内容才会输出到屏幕上,同理,计算机也有缓冲区的概念,今天我们先介绍行缓冲区

行缓冲:我们标准输入、标准输出都是采用的行缓存,也就是遇到 **

换行符

** 或者我们手动调用fflush时,才会将缓存区的东西写到对应的地方。

②fflush

我们当然希望公告条能在同一行滚动,因此我们不可以使用换行符来显示,但我们仍要输出不同的内容,所以我们使用’\r’并且通过手动刷新,来使用覆盖的原理实现滚动效果!

fflush的使用:

fflush

函数在 C 语言中用来清空输入输出缓存,强制刷新所有输出。它通常用于输出流,但是在一些情况下也可以用于输入流。如果缓存的输出没有被刷新,则它可能不会立即被写入到目标文件或设备中

③sleep

sleep函数来暂停程序的执行,以毫秒为单位指定等待时间,程序会短暂地停止这个时间。
sleep的使用:
在windows操作系统下,头文件为<windows.h>
在LINUX操作系统下,头文件为<unistd.h>

四、思路分析

要实现滚动,即让下图每一行覆盖上一行的内容(fflush实现),并控制公告滚动的速度(通过sleep或者usleep实现)
在这里插入图片描述
完成上述过程,最终使用for循环即可让公告不停在屏幕上移动!

五、参考代码

完整参考代码https://github.com/FORGETSCHOLAR


到这里,本篇文章就结束了,本文仅仅抛砖引玉,大家可以制作一个更加完善的滚动公告条小程序!
如果你觉得本篇文章还不错,可以给学者一个关注,我们下次见~

标签: linux 运维 服务器

本文转载自: https://blog.csdn.net/m0_73209194/article/details/128892310
版权归原作者 蓝色学者i 所有, 如有侵权,请联系我们删除。

“【LINUX】在LINUX上写一个滚动公告条小程序”的评论:

还没有评论