易截截图软件、单文件、免安装、纯绿色、仅160KB

用c写个控制台下的进度条

最近想写个控制台下的进度条,可以知道程序的进展情况,不用弄个界面。其中最主要的就是“\b“字符,它的ascii码值是10,是退格的意思。
现把代码贴上,如下(可以在vc和linux编译):
progress.c
#include <stdio.h>
#ifdef _WIN32
#include <windows.h>
#define mysleep(n) Sleep(n*1000)
#else
#include <unistd.h>
#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下编译的截图:
另外,加个windows2000启动时的一个进度的效果:
#include <stdio.h>
#ifdef _WIN32
#include <windows.h>
#define mysleep(n) Sleep(n*1000)
#else
#include <unistd.h>
#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写的3D迷宫

          Boss说,要看OpenGL,看了快一个月,总算出了个像样的东西,用C写了个3D迷宫,
虽然只有350行
       代码,不过边学边写,足足写了一周时间,还是小有成就感的,活活活!
         &n ......

程序员之路──如何学习C语言并精通C语


转载自: http://bbs.chinaitlab.com/thread-304041-1-1.html
学习C语言不是一朝一夕的事情,但也不需要花费十年时间才能精通。如何以最小的代价学习并精通C语言是本文的主题。请注意,即使是“最小的代价”,也绝不是什么捷径,而是以最短的时间取得最多的收获,同时也意味着你需要经历艰苦的过程。
一、要读 ......

对C/C++可变参数表的深层探索


引言
  C/C++语言有一个不同于其它语言的特性,即其支持可变参数,典型的函数如printf、scanf等可以接受数量不定的参数。如:
printf ( "I love you" ); 
printf ( "%d", a );
printf ( "%d,%d", a, b );
  第一、二、三个printf分别接受1、2、3个参数,让我们看看printf函数的原型:
int printf ( const ......

C multi line macro: do/while(0) vs scope block

http://docs.google.com/View?docid=ajbgz6fp3pjh_2dwwwwt#_38239340844832237
It is not about optimization.
The whole idea of using 'do/while' version
is to make a macro which will
expand into a regular statement, not into a
compound statement. This is
done in order to make the use of function-s ......

【C/C++相关知识】ATOM优化之GCC篇

作者: Yanqing Wang (Intel)
在ATOM程序优化利器中,笔者着重讲述了如何使用Intel Compiler对ATOM应用程序的优化,很多网友都比较感兴趣并想知道在GCC编译器下如何优化ATOM。借此,本文将重点于讨论如何使ATOM应用程序在GCC编译器下优化。
细心的网友可能发现GCC4.4.2手册没有讲述如何在ATOM平台优化,所以要通过GCC对AT ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号