一、用C语言实现彩色进度条
test.c文件
#include<stdio.h>
#include<unistd.h>//只有linux下才有该文件
int main()
{
int i=0;
const char* label="/-\\|";
char buf[1024]={0};
for(i=0;i<100;++i)
{
buf[i]='#';
if(i<=25)
{
printf("[%d%%][%c]\033[0;31m[%s]\033[0m\r",i,label[i%4],buf);//红色
// /n表示换行,另起一个新行,光标来到行首;/r表示回车,不另起新行,光标来到行首
}
else if(i>25&&i<=50)
{
printf("[%d%%][%c]\033[0;33m[%s]\033[0m\r",i,label[i%4],buf);//黄色
}
else if(i>50&&i<=75)
{
printf("[%d%%][%c]\033[0;34m[%s]\033[0m\r",i,label[i%4],buf);//蓝色
}
else
{
printf("[%d%%][%c]\033[0;32m[%s]\033[0m\r",i,label[i%4],buf);//绿色
}
fflush(stdout);//手动刷新缓冲区
usleep(500*100);//usleep单位是微秒
}
return 0;
}
二、工程管理工具 Makefile(解决大型项目的模块之间相互依赖问题)
make的执行过程:
1.先在当前目录中查找makefile文件
2.找到要生成的目标(决定是否要真的生成)
3.检查依赖的文件是否都存在
4.执行生成动作的命令
一个makefile中可以存在多个目标,有的目标并不是为了要生成个东西,而仅仅是为了执行一些特定的操作,最典型的就是clean(清除之前生成的文件),clean这样的目标只是为了执行一个动作,而不是为了生成文件,如果目录中恰好有一个clean这样的文件,就会影响到动作的执行 ,就可以使用(.PHONY:)把clean声明成伪目标
我们写一个makefile文件来编译上边的test.c文件:
makefile文件
test:test.c
gcc test.c -o test
.PHONY:clean
clean:
rm test
make clean
写好makefile文件和test.c文件之后,输入make(如果makefile文件中有多条命令,make默认执行第一条指令),会执行 gcc test.c -o test;接下来可执行test文件来查看我们代码执行结果和我们预期结果是否相同。在生成test文件后输入make clean会执行 rm test (删除test生成文件);