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

有时候,我们需要在控制台下实现这样的效果:"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 ; }

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值