Linux下的进度条小程序

本文的题目就是实现一个进度条,进度条的应用在软件中无处不在,拷贝一个文件需要一个进度条,加载一个文件也需要一个进度条,来标志完成与否。

那么 ,一个进度条有哪些元素呢:

  1. 一个不断向右生长的容器(直观的看出当前的进度)
  2. 一个数据化反映进度的百分比。
  3. 一个标志(这个标志反映这个进度条是否在工作,还是卡死)

在这里有一些小小的知识点:C语言中缓冲区的刷新方式是以行缓冲刷新的。也就是说,程序要在输入流中取到一个行结束标志(可以是换行符和EOF)才会显示在输出设备(屏幕)上。注意,程序结束时,系统会强制刷新缓冲区。

根据需要,我们可以使用一个字符数组充当进度条的容器。一开始初始化为0,每次循环修改为‘=’,然后打印当前的数组,因为0是换行符‘\n’的ascall码,所以没次只打印到修改处。然后在回车,但是不换行(‘\r‘),在sleep上一段时间。我们就可以看到容器的动态生长了。

下面来看具体实现:

  1 #include<stdio.h>
  2 #include<string.h>
  3 int main()
  4 {
  5         char str[101]={0};
  6         char arr[4]={‘|‘,‘/‘,‘-‘,‘\\‘};
  7         int i=0;
  8         for(;i<101;++i)
  9         {
 10                 str[i]=‘*‘;
 11                 printf("[%-100s][%c][%d\%]",str,arr[i%4],i%101);
 12                 printf("\r");
 13                 usleep(100000);
 14                 fflush(stdout);
 15         }
 16         printf("\n");
 17         return 0;
 18 }

运行截图:

时间: 2024-12-18 08:14:33

Linux下的进度条小程序的相关文章

Linux中ctags、make以及进度条小程序(\r的应用)

一.ctags  查看函数定义的好工具 ctags -R 在当前目录建立tags文件 ctrl +]  + 回车 跳到函数定义处 ctrl + t 返回 二.make与Makefile make 是一条命令 Makefile 是一个文件 make的执行需要一个Makefile文件 Makefile 两个重要关系 依赖关系 依赖方法 touch Makefile/makefile 1 依赖方法前面要有Tab键 2 进行过程从上向下 向下时只要有一个可以执行就回退(向上走.退栈) 不再执行下面的(伪

通过实现Linux下的进度条引发的一系列问题

Linux下实现进度条 代码如下:  1 #include<stdio.h>   2 #include<unistd.h>   3 void Progess()   4 {   5         char arr[101];   6         memset(arr,'\0',sizeof(arr)/sizeof(char));   7         char state[5]="|/-|\0";   8         int i=0;   9    

Linux下实现进度条并且彩色打印

Linux下实现进度条并彩色打印 一.为什么要实现一个进度条? 首先就是简单 ( ^_^ ) 其次就是理解以下几个知识点: 1. ' \r ' 与 '  \n ' 的区别 先来看下什么是缓冲区:暂时存放输入输出信息的地方 \r:将要输入输出的信息会覆盖缓冲区原有的信息 \n:先进行输入输出信息,再换行,最后刷新缓冲区 2. usleep函数 作用:把调用该函数的线程挂起一段时间,单位是微秒 头文件:#include <unistd.h> 语法:void usleep( int micro_se

Linux下进度条小程序

源码如下: 简单实现的在命令行下进行简单的进度条显示的功能,能模拟现实目前的进度并且用旋转的字符表示代码正在运行未卡住. 代码主要利用了printf的格式化输出,以及回车符/r,在这里%s前进行了-100的对齐,也就是左对齐100个字符. Linux 平台下与windows不同的是将换行符\n表示成两个动作\r\n,好比老式的打字机,\n回车代表换行,\r表示将光标移到左边首个字符的位置.而printf等库函数在输出时,封装底层的系统调用,实际上I/O都有缓冲区,所以,对于printf等函数而言

Linux下简单C语言小程序的反汇编分析

韩洋原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 写在开始,本文为因为参加MOOC相关课程而写的作业,如有疏漏,还请指出. 选了一门Linux内核分析课程,因为阅读内核代码中或多或少要涉及到At&T汇编代码的阅读,所以这里写下一个对一个简单C命令行程序的反汇编分析过程,一方面完成作业,另一方面当作练手.下面开始: 1.编写我们的C语言小程序 这里我们使用简单的例子,代码如下: 1

Linux下简易进度条的实现

在生活中,进度条是很常见的,那么,进度条是如何实现的呢? 首先,进度条的动态是利用人眼视觉暂留效果的.实际上是如下过程: 先输出:[=                                               ]表示进度是1%,刷新之后 再输出:[==                                             ]......由于刷新的很快,所以看起来像是等号不断向后增加,直到进度完成. 在写这个程序之前我们需要了解一下的知识: 1.缓冲区 缓冲区分

linux下的socket通信小程序分享

最近学习unix网络编程,感觉东西零零碎碎,比较混乱.因此决定整理以下,发一个小博客.一来可以与大家分享以下,二来可以总结提高一下所学的东西.话说:竹子为什么长的高,因为它喜欢总结阿--^_^ 废话不多说了,上代码.小弟半路出家,入行不深,过路大神不喜勿喷阿,嘿嘿--^_^ 程序是一个基于tcp的 C/S .简单回显功能( 声明以下,不要以为注释是英语就说我是在哪里下载的,原因是我运行程序 汉字老显示乱码,就改成蹩脚英语了 ). 首先是一个自己的库 1 #ifndef MYLIB_H 2 #de

Linux下提权常用小命令

有些新手朋友在拿到一个webshell后如果看到服务器是Linux或Unix操作系统的就直接放弃提权,认为Linux或Unix下的提权很难,不是大家能做的,其实Linux下的提权并没有很多人想象的那么难,你真去尝试做了,也许你就会发现Linux下的提权并不难,尤其是一些简单的提权方法是很容易学会的.Linux下的提权我知道的比较简单的方法都是在命令行下完成的,很多新手叉子可能根本没接触过Linux下的一些常用命令,今天危险漫步就给大家介绍一些Linux下提权过程中常用到的Linux命令,由于我也

马化腾:希望扶持更多线下实体用好小程序 满足用户需求而非刻意控制流量

小马哥前几天回答了记者关于小程序的提问时表示,希望扶持更多线下实体用好小程序,腾讯过去做了很多解决方案,都是为了跟线下实体去结合.服务行业,包括制造业工业,可能未来还有农业的实体,我们现在都看到这些结合的方案.这个还在不断地演变,所以我们希望未来微信的公众号也好,包括小程序也好,更多的是线下实体来用.小程序推出之前,我们就曾强调过,我们不做线上导流,也不希望成为一个流量风口,而是关注于线下实体怎么把它认识好.用好.而不是希望一来就冲刺,全都是线上的这些头部应用,我觉得那个不是我们的目的.所以我们