Linux小程序-进度条
目录
1.\r&&\n
2.fflush(stdout)
3.进度条代码和解释
4.运行展示
1.\r&&\n
在Linux中,\r是回车,回车指的是将光标移到行首,\n是换行。
2.fflush(stdout)
将缓冲区中的内容立即刷新到显示器文件中。C语言为我们提供了语言级别的缓冲区,fflush(stdout)可以立即将缓冲区的内容刷新到显示器文件中。因为缓冲区对显示器文件的刷新采取的是行刷新的策略,附和人一行一行看内容的习惯。如果是刷新到其它文件中,则不是行刷新,是全刷新的策略,后续文章中会详细分析。
以下展示代码案例。
3.进度条代码和解释
#include "progressBar.h"
void progressBar(int second)
{
char s[] = "|/-\\";//结尾位置旋转的标志,动态效果
char arr[102];//进度条数组
memset(arr,'\0',sizeof(arr));//初始化
int cnt = 0;
while(cnt <= 100)//1到百分之100
{
printf("[%-100s][%d%%][%c]\r",arr,cnt,s[cnt % 4]);//回车靠左的格式化输出
fflush(stdout);//将缓冲区中的内容立即刷新到显示器文件中
arr[cnt] = '=';//进度条向后走
cnt++;
if(cnt < 100)
arr[cnt] = '>';//结尾位置加个箭头
usleep(second);//睡眠second微秒
}
printf("\n");
}