您的位置:首页 > 运维架构 > Linux

Linux下简易进度条的实现

2017-04-04 20:26 155 查看
生活在高科技时代的我们,在电脑或手机上游戏娱乐时,通常会看到加载页面或者下载东西的过程中会出现一个不断变长直到填满整个小长方形的条状物,专业一点来说它就叫做进度条。

下面我们可以用C语言代码自己来实现一个简易的进度条。

首先要实现进度条我们就要了解它的原理。在C语言中对printf函数来说,它的输出会先被写在一段缓冲区中,用回车换行进行行刷新。而不是直接输出到显示器上。

在Linux下,/n为回车换行

而在window下,/r,/n分别表示回车和换行。

我们如何来模拟实现一个进度条呢,基本我们可以这样去做,首先定义一个数组让他每次从头开始在一行上输出一个#,下一次比前一次多输出一个#,一直覆盖掉原来的#,然后使光标回退到这行的起始位值,继续输出。再用fflush清空缓冲流,将缓冲区的所有内容立即输出到显示器上而不让其一段一段的显示,并且能满足进度条的实时性,代码截图如下:



在我们运行代码的过程中为了方便起见可以提前编写一个Makefile文件,之后直接make就可生成可执行程序,清理工程也会比较方便,直接输入make clean命令即可。Makefile文件截图如下:



运行时截图:



运行完成后:



这样一个简易的进度条就完成了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: