赞
踩
进度条在我们日常生活中可以说非常常见了。我们常常会遇到这样的情况,进度条加载到百分之九十八就卡着不动,这很令人恼火。本篇文章,我将带领大家用c/c++语言编写出一个简单的进度条。
提示:以下是本篇文章正文内容,下面案例可供参考
为了更好地控制格式,没有采用c++中的cout而是c语言中printf()函数。使用c++中的string类型也是为了更加简便地使用。
错误示范
因为printf函数输出字符串是针对char *的,即printf只能输出c语言的内置数据类型,而string不是c语言的内置数据类型。而string类型的对象不止包含字符串,还包含了许多用于操作的函数,所以&str并非字符串的首地址。
所以,如需输出string对象中的字符串,可以使用string的成员函数c_str(),该函数返回字符串的首字符的地址。
正确示范
Sleep函数可以使计算机程序(进程,任务或线程)进入休眠,使其在一段时间内处于非活动状态。
注意
usleep功能把进程挂起一段时间, 单位是微秒(百万分之一秒)
注意
1秒=1000毫秒=1000000微秒
fflush是一个在C语言标准输入输出库中的函数,功能是冲洗流中的信息,该函数通常用于处理磁盘文件。 fflush ()会强迫将缓冲区内的数据写回参数stream 指定的文件中。
- ‘\r’:回车,即将光标移动到当前行的行首;
- ‘\n’:换行,即将光标移动到下一行
代码如下(示例):
#include<stdio.h>
#include<string>
#include <windows.h>
#define N 0
const char style[] = { '#', '$', '>', '-', '*' };
const char lable[4] = { '|','\\','-','\/' };
using namespace std;
代码如下(示例):
int main()
{
string str;
char ch = style[N];
for (int i = 1; i <= 100; i++)
{
fflush(stdout);
str += ch;
printf("[%-100s][%d%%][%c]\r", str.c_str(),i, lable[i%4]);
Sleep(100);//1/10s
}
return 0;
}
这里要格外注意,在代码中使用string类型是c++的内容,源文件的后缀是.cpp而不是.c
如果是.c后缀,在编译的时候会出现的错误如下图所示
实现效果如下
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。