• Linux之进度条


    在这里插入图片描述

    进度条在我们日常生活中可以说非常常见了。我们常常会遇到这样的情况,进度条加载到百分之九十八就卡着不动,这很令人恼火。本篇文章,我将带领大家用c/c++语言编写出一个简单的进度条。

    提示:以下是本篇文章正文内容,下面案例可供参考

    一、c语言printf输出string类型

    为了更好地控制格式,没有采用c++中的cout而是c语言中printf()函数。使用c++中的string类型也是为了更加简便地使用。

    错误示范
    在这里插入图片描述
    因为printf函数输出字符串是针对char *的,即printf只能输出c语言的内置数据类型,而string不是c语言的内置数据类型。而string类型的对象不止包含字符串,还包含了许多用于操作的函数,所以&str并非字符串的首地址。
    所以,如需输出string对象中的字符串,可以使用string的成员函数c_str(),该函数返回字符串的首字符的地址。

    正确示范
    在这里插入图片描述

    二、sleep()函数和usleep()函数

    1.Sleep函数

    Sleep函数可以使计算机程序(进程,任务或线程)进入休眠,使其在一段时间内处于非活动状态。
    注意

    • 在VC中Sleep中的第一个英文字符为大写的"S"
      在标准C中是sleep(S不要大写),下面使用大写的来说明,具体用什么看你用什么编译器。简单的说VC用Sleep,别的一律使用sleep
    • Sleep函数的一般形式:
      Sleep(unsigned long);
    • 其中,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是Sleep(1000);
    • 另外还需要引用头文件#include

    2.usleep()函数

    usleep功能把进程挂起一段时间, 单位是微秒(百万分之一秒)
    注意

    • 需要引头文件#include
    • 个函数不能工作在windows 操作系统中。用在Linux的测试环境下面

    3.关于秒的换算

    1秒=1000毫秒=1000000微秒

    三、fflush()函数 (简单了解)

    fflush是一个在C语言标准输入输出库中的函数,功能是冲洗流中的信息,该函数通常用于处理磁盘文件。 fflush ()会强迫将缓冲区内的数据写回参数stream 指定的文件中。

    • 头文件 #include
    • 函数结构:int fflush(FILE *stream)

    四、%r和%h

    • ‘\r’:回车,即将光标移动到当前行的行首;
    • ‘\n’:换行,即将光标移动到下一行

    五、代码块

    1.process.h

    代码如下(示例):

    #include
    #include
    #include 
    
    #define N 0
    
    const char style[] = { '#', '$', '>', '-', '*' };
    const char lable[4] = { '|','\\','-','\/' };
    
    using namespace std;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2.process.cpp

    代码如下(示例):

    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;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    这里要格外注意,在代码中使用string类型是c++的内容,源文件的后缀是.cpp而不是.c
    如果是.c后缀,在编译的时候会出现的错误如下图所示
    在这里插入图片描述

    实现效果如下
    在这里插入图片描述


  • 相关阅读:
    GEE开发之Modis_NDVI的数据分析
    大数据Flink(一百零三):SQL 表值聚合函数(Table Aggregate Function)
    入门python
    Spring Security密码加密
    BAT面经总结,阿里巴巴、百度、京东、饿了么offer拿到手软!
    《C++ Primer plus 》第六章:分支语句和逻辑运算符
    H5圣诞特效单页源码
    VMware虚拟化环境搭建
    python使用np函数报错
    现代企业架构框架-应用架构
  • 原文地址:https://blog.csdn.net/shizhongruyi0606/article/details/127704911