用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++的文件操作,为什么说c++的文件操作呢,因为对于c语言的操作,也有它的函数之不过大同小异罢了。
在c++的文件操作中有,有一个类对文件操作进行操作,即CFile,下面就写一段代码,来简单的进行介绍。
CFile cf;
char zhi[]={1,2};
&n ......
va_list是c/c++语言问题中解决可变参数的一组宏.先来看一个程序例子吧.
view plaincopy to clipboardprint?
#include <stdarg.h>
/** 函数名:max
* 功能:返回n个整数中的最大值
* 参数:num:整数的个数 . ......
3: int main()
4: {
5: int i = 1,j;
6: union test{
7: int m;
8: ......
在Linux C编程中使用Unicode和UTF-8
目前各种Linux发行版都支持UTF-8编码,当前系统的语言和字符编码设置保存在一些环境变量中,可以通过locale命令查看:
$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US ......
"endian"这个词出自<<格列佛游记>>,小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开.我们一般将endian翻译成"字节序",将big endian和little endian称作"大端"和"小端".
在计算机科学领域中,字节序是指存放多字节数据的字节的顺序,典型的情况是整数在内存中的存放方式和 ......