用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下编译的截图:

用c写个控制台下的进度条_第1张图片

 

另外,加个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下的截图:

你可能感兴趣的:(C/C++)