在c语言运行过程中,可不可以编出一个进度条,从0匀速到100,有个动画就行
进度条要什么样子的可以设一个字符数组每个元素设为然后用一个循环每循环一次将最右边的赋值为'\0'然后打印,每次打印用Sleep函数睡眠一秒
[root@devkit test]# cat qwer.c
# include <stdio.h>
# include <string.h>
int main(void)
{
char buffer[102]; //开辟一个能容纳102个字符的数组
memset(buffer, 0, sizeof(buffer));//将字符数组的每一个字节都初始化为0
int i = 0;
while(i <= 100)
{
printf("[%-100s][%d%%]\r", buffer, i); //控制输出的格式
fflush(stdout); //立即刷新标准输出流
buffer[i++] = '#'; //把i下标的空间初始化为#之后,++i
usleep(50000); //因为usleep是毫秒为单位,进度条时间可以自己控制
}
printf("\n");//最后的时候换个行更加美观
return 0;
}
[root@devkit test]# gcc qwer.c -o qwer
qwer.c: In function ‘main’:
qwer.c:13:5: warning: implicit declaration of function ‘usleep’; did you mean ‘fseek’? [-Wimplicit-function-declaration]
usleep(50000); //因为usleep是毫秒为单位,进度条时间可以自己控制
^~~~~~
fseek
[root@devkit test]# ./qwer
[####################################################################################################][100%]
你到底是控制台还是MFC?
如果是基于窗口的应用,你可以使用GDI+填充以表达进度,或者有第三方的控件也行
如果是控制台,你可以使用printf("\r");将光标退回这一行的开始,继续printf将覆盖之前显示的内容
然后你就随便写文字或者==============>之类的东西来表示进度呗