linux 控制台 程序 c 进度条,用c写个控制台下的进度条

最近想写个控制台下的进度条,可以知道程序的进展情况,不用弄个界面。其中最主要的就是“/b“字符,它的ascii码值是10,是退格的意思。

现把代码贴上,如下(可以在vc和linux编译):

progress.c

#include

#ifdef _WIN32

#include

#define mysleep(n) Sleep(n*1000)

#else

#include

#define mysleep(n) sleep(n)

#endif

void progressBar(int n)

{

static int currentNumber = 0;

if(n <= currentNumber)

return;

currentNumber = n;

if (n == 1)

{

currentNumber = n;

printf("= %d",n);

fflush(stdout);

return;

}

if(n<11)

printf("/b/b/b");

else

printf("/b/b/b/b");

printf("= ");

printf("%d", n);

fflush(stdout);

}

int main()

{

int i;

for (i = 1; i <= 100; ++i)

{

progressBar(i);

mysleep(1);

}

printf("/n");

return 0;

}

编译:

linux下:

gcc progress.c -o progress

在windows下:

vc下建一个progress工程,然后把代码贴上编译。

下图是windows下编译的截图:

0818b9ca8b590ca3270a3433284dd417.png

另外,加个windows2000启动时的一个进度的效果:

#include

#ifdef _WIN32

#include

#define mysleep(n) Sleep(n*1000)

#else

#include

#define mysleep(n) sleep(n)

#endif

int main()

{

int i;

for (i = 1; i <= 100; ++i)

{

printf("=");

}

fflush(stdout);

for (i = 1; i <= 100; ++i)

{

printf("/b");

}

for (i = 1; i <= 100; ++i)

{

printf(">");

fflush(stdout);

mysleep(1);

}

printf("/n");

return 0;

}

windows和linux下都可以编译,下图是linux下的截图:

0818b9ca8b590ca3270a3433284dd417.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值