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

【Linux】彩色进度条的实现,Linux小程序

2017-12-05 19:45 483 查看

目录

普通版进度条的实现

在process目录下创建process.c C程序文件

创建makefile文件,该文件实现编译process.c C代码的功能

彩色进度条的实现

Linux下输出彩色字符

修改普通版的process.c 程序

一、普通版进度条的实现

1.1 创建该程序的专有目录

①首先通过mkdir process ,创建process目录;



②cd process ,进入process目录下;



③vim process.c ,创建C程序并进入开始编写程序;



④普通版进度条的C语言实现代码:

#include<stdio.h>
#include<unistd.h>

int main(){
char buf[101] = {0};//用buf存放要输出的进度条
size_t i = 0;
const char* label = "-/|\\";
for(;i<50;++i){
buf[i] = '#';
printf("[%lu%%][%c][%-50s]\r",i*2,label[i%4],buf);

/*[%lu%%]->i*2,因为I最大为50,这里是以百分制的形式输出进度

const char* label = "-/|\\"; + [%c] + label[i%4]
这几句的意思是随着循环的进行,依次输出label所指字符串的单个字符,因为是以[%c]形式输出,
所以它只占一个字符位,最终会形成一个不断旋转的横线(借助时间间隔比较小形成的这种错觉)*/

fflush(stdout);
/*fflush(stdout)是对标准输出流的清理,及时地打印数据到屏幕上,在这里就是不间断的输出buf*/
usleep(100000);
}
printf("\n");
return 0;
}


1.2 创建makefile文件,该文件实现编译process.c C代码的功能

①在process目录下创建makefile文件,vim makefile;



②在makefile文件下输入代码,如图所示:



③在终端输入 make ,这时会生成一个可执行程序 process,再输入./process , 就会执行该程序。





2、彩色进度条的实现

2.1 Linux下输出彩色字符

①控制码如下所示:

\033[0m 关闭所有属性

\033[1m 设置高亮度

\033[4m 下划线

\033[5m 闪烁

\033[7m 反显

\033[8m 消隐

\033[30m----\33[37m 设置前景色

\033[40m----\33[47m 设置背景色

\033[nA 光标上移n行

\033[nB 光标下移n行

\033[nC 光标右移n行

\033[nD 光标左移n行

\033[y;xH 设置光标位置

\033[2J 清屏

\033[K 清除从光标到行尾的内容

\033[s 保存光标位置

\033[u 恢复光标位置

\033[?25l 隐藏光标

\033[?25h 显示光标


② 背景色:

40:黑 41:深红 42:绿 43:黄色 44:蓝色 45:紫色 46:深绿 47:白色


③ 前景色:

30:黑 31:红 32:绿 33:黄 34:蓝色 35:紫色 36:深绿 37:白色


④ 格式:

printf("\033[背景色码;字体色码m"要输出的字符串"\033[0m");

printf("\e[背景色码;字体色码m%s\e[0m","要输出的字符串");


【说明】:控制字符是打开某种样式,输出完成时需要再关闭样式才能使terminal恢复到原来状态,\033和\e的作用相同

【例】:

printf("\e[32m%s\e[0m\n", "hello world");

\e[32m为打开绿色前景色样式,\e[0m为关闭所有样式,如果未关闭,则所有输出字体均为绿色前景色。


2.2 修改普通版的process.c 程序

【程序如下图所示】



【程序运行结果】:

进度条在前50%时是红色,后面变成绿色:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux makefile