前言
一、前置理论知识
1.1回车和换行的区别
在我们的日常生活中,回车和换行似乎是相同的事情,但是事实上
PS:现在我们键盘上的ENTER同时兼备了回车和换行的功能,
1.2缓存区的概念
1.2.1“\n”和“\r”在缓冲区中的作用效果差别
printf("hello Makefile!\n");先行打印,待睡眠结束后才弹出操作框
printf("hello Makefile!\r");待睡眠结束后才会和操作框一起打印
1.2.2fflush函数
#include <stdio.h>
int main()
{
printf("hello Makefile!\r");
fflush(stdout);
sleep(3);
return 0;
}
二、Linux中的先行配置
在Linux中我们一般使用gcc命令去完成代码的预处理、编译、汇编、连接的工作。而对于一个多文件形成的程序我们通常使用Linux项目自动化构建工具-make/Makefifile。可以说会不会写makefile反映出一个人有无能力去完成大型工程的能力。
虽然进度条只由三个文件组成但是这不失为一种练习vim,makefile的手段。
三、进度条的重点部分
1、设计进度条的主体部分
将进度条显现在屏幕上我们一般会用printf函数,那么我们究竟需要展现什么?
以这个为例,我们需要一条代表下载进度的线,表示已经下载的百分比和一些动态的符号表示程序的进行。
那么我们的初代主体代码为
void processbar(int speed)
{
char bar[102];
const char *lable="|/-\\";
memset(bar, '\0', sizeof(bar));
int len =strlen(lable);
int cnt=0;
while(cnt <= 100)
{ printf("[%-100s][%d%%][%c]\r", bar, cnt, lable[cnt%len]);
fflush(stdout);
bar[cnt++]=BODY;
if(cnt<100)bar[cnt]='>';
usleep(speed);
}
printf("\n");
}
但是现实情况大多是传入进度来显示进度条。
所以我们将代码经行些许修改。