#include <string.h>
#include <sys/ioctl.h>
int main(){
char x[300];
memset(x,0,300);
struct winsize ws;
ioctl(0, TIOCGWINSZ, &ws); // 获取终端窗口大小
int total = ws.ws_col-10;
for(int i=0;i<=total;i++)
{
sprintf(&x[0],"%3d", i*100/total);
x[3]='%';
x[4+i]='=';
printf("\r%s>",x); // \r移动到行首
fflush(stdout); // 立刻输出
usleep(100*1000);
}
printf("\n");
return 0;
}
\r\n 回车换行
\n 换行
\r 回车(移动到行首)
本文介绍了一个使用C语言编写的简单进度条程序。该程序利用了标准库函数memset、sprintf和ioctl来实现在终端中显示动态更新的百分比进度条。通过对终端窗口大小的获取,确保进度条长度适应当前屏幕宽度。
847

被折叠的 条评论
为什么被折叠?



