Linux下进度条的简单实现
来源:互联网 发布:知否剧组照片 编辑:程序博客网 时间:2024/05/18 15:06
逻辑
进度条实现的简单逻辑就是第一次输出一个字符,第二次输出两个字符…直到最后一直输出100个字符,但每次只显示一行,所以这就要明确一下“缓冲区”这个概念。
简单的谈一谈缓冲区,每次我们使用scanf和cin时,输入的东西都不值是直接输入到我们想要输入的内存空间,而是全部储存到了输入缓冲区的stdin,在我们输入完成之后,即敲击回车键之后,缓冲区输入完成,编译器就会从缓冲区上拿走当前变量属于自己的一份内容(类型,数量等一一符合),然后开工作。在输出时,也是先输出到输出缓冲区stdout中,然后通过刷新或‘\n’ 或输满输出缓冲区然后再显示到屏幕上。
‘\n’在Linux、unix 中只表示换行,但不会回到下一行的开始位置。
‘\r’在Linux、unix 中表示返回到当行的最开始位置。
所以我们在实现这个进度条的时候就要使用’\r’,而不是’\n’,因为我们只要每次显示一行。
具体请看代码和代码中的注释。
#include <stdio.h>#include <unistd.h>int main(){ char buff[102]={' '};//102——包含两个"[","]" char arr[]={'|','/','-','\\'};相当于windows鼠标双击等待时的旋转 int i=0; while(i<=100) { printf("[%-100s]%d%\r",buff,i,arr[i%4]); fflush(stdout);//刷新输出缓冲区 buff[i]='#';//给buff的第i个字符赋值为'#' ++i; buff[i]=' '; usleep(100*1000); //睡眠0.1秒 } fflush(stdout); printf("\n");//换行,因为要输出下一句话,不然就会输入到最后一行'#'中 printf("download...\n"); return 0;}
我还转载了一篇博客,他实现了进度条的彩色输出,是和Linux下的一些ANSI码有关的,有兴趣的可以去看看,有原文链接。
0 0
- 简单实现linux下的循环进度条
- linux下进度条的简单实现
- linux下进度条的简单实现
- linux下实现简单的进度条
- Linux下进度条的简单实现
- Linux下简单进度条的实现
- Linux下进度条的简单实现
- Linux下的简单进度条实现
- Linux下实现简单进度条
- linux下实现简单进度条
- Linux下简单进度条实现
- Linux下实现进度条程序的简单实现
- 【Linux】Linux下实现一个简单的进度条程序
- LINUX实现简单的进度条
- Linux实现简单的进度条
- Linux下用C语言来实现简单的进度条
- linux下用C++代码实现简单的进度条
- 在Linux下用C语言实现简单的进度条
- 通过 按键 学习 中断
- 并发编程--并发编程包Condition条件
- 对Java Serializable(序列化)的理解和总结
- 根据网络路径存储图片并在图库显示
- CMD 改host文件
- Linux下进度条的简单实现
- 解决win7安装 wamp 启动不了 apache 问题之一
- (一)PCL总览
- tarjan算法
- easyUI的引用方式
- C 函数指针
- 剑指Offer 42反转单词顺序 vs左旋转字符串
- map简单用法
- 微生物增殖,蓝桥杯2012年第1题