您的位置:首页 > 编程语言 > C语言/C++

如何用C/C++在控制台下动态输出进度

2012-01-05 16:24 281 查看
有时候,我们需要在控制台下实现这样的效果:"You
have downloaded:5%",这里"5%"是动态百分比。参考一些论坛,总结来,可以用下方的方式实现:

首先,Windows下, \r 可以回到一行开头。

C/C++ code
#include <stdio.h>
#include <unistd.h>

int main()
{
int i;
for(i = 0; i < 100; i += 10)
{
printf("\rYou have downloaded: %2d", i);
fflush(stdout);  //记住 fflush,不然会缓冲。
sleep(1);
}
putchar('\n');
return 0;
}


此外,windows下用\b也是可以达到回退的效果的,所以也可以采用下面的方式:

C/C++ code
#include <iostream>
#include <windows.h>     // 更改相关的头文件

using namespace std;

int main()
{
int i = 0;
printf(You have downloaded:");
for(int i = 0; i<101; ++i)
{
printf("%2.0f%%", i/100.0 * 100 );
sleep(1);
printf("\b\b\b");
}
printf("\b");

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: