终端串口模拟进度条打印,初步模拟游戏中加载信息数据时显示的进度条或Linux加载数据终端界面显示的进度条。
#include <stdio.h>
#include <unistd.h>
void printProgressBar(int progress, int total, int barWidth)
{
float percentage = (float)progress / total;
int filledLength = barWidth * percentage;
printf("\r[");
for (int i = 0; i < barWidth; i++) {
if (i < filledLength) {
printf("#");
} else {
printf("-");
}
}
printf("] %.1f%%", percentage * 100);
fflush(stdout);
}
int main()
{
int total = 10;
int barWidth = 50;
printf("模拟进度条\n");
for (int i = 0; i < total; i++)
{
printProgressBar(i + 1, total, barWidth);
// 模拟长时间运行的操作
usleep(1000000);
}
printf("\n");
return 0;
}
printProgressBar() 函数接受三个参数:
progress 进度,
total 总数,
barWidth 进度条的宽度。
使用 \r 控制字符在同一行中重新打印进度条和百分比信息。
fflush(stdout) 确保立即刷新输出缓冲区。
在 main() 函数中的循环中,在每次迭代时通过调用 printProgressBar() 函数来更新并打印进度条,
模拟长时间运行的操作使用 usleep() 函数暂停一秒。
上述代码具体实现的效果
打印过程
打印结束