Linux进度条的实现
来源:互联网 发布:新数网络 编辑:程序博客网 时间:2024/05/16 09:26
回车与换行
符号 ASCII码 意义
回车 \r 13 光标重新回到本行开始位置,r是return的缩写
换行 \n 10 光标移动到下一行(不一定是行首),n是newline的缩写
进度条的原理
进度条即计算机在处理任务时,实时的,以图片形式显示处理任务的速度,完成度,剩余未完成任务量的大小,和可能需要处理时间,一般以长方形条状显示。
进度条一般包括三个部分:1.进度条存在于一个区间,不断加载数据,直到区间加载满;2.会显示进度0%-100%;3.有时候还会有一个小圈,表示在进行加载;
清空缓冲区
函数名:fflush
功 能:清除文件缓冲区,文件以写的方式打开时将缓冲区文件写入文件
原 型:int fflush(FILE* stream)
用 法:fflush(stdout)刷新标准输出缓冲区,把输出缓冲区的东西打印到标准输出设备上
#include<stdio.h>int main(){ int i, c; for (;;) { fputs("Please input an integer: ", stdout); if ( scanf("%d", &i) != EOF ) { /* 如果用户输入的不是 EOF */ /* while循环会把输入缓冲中的残留字符清空 */ /* 读者可以根据需要把它改成宏或者内联函数 */ while ( (c=getchar()) != '/n' && c != EOF ) { ; } /* end of while */ } printf("%d/n", i); } return 0;}
运行结果:
当输入数字时,正常;
当输入字母时,i的值不改变,printf输出的仍是上一次的值。由于输入缓冲区每次都被清空,所以也就不存在scanf自动不停读取缓冲区的值的情况。
实现过程
①成功安装ctags后,在工作区创建一个目录,并创建一个.c文件进入编辑
#include <stdio.h>#include <string.h>#include <unistd.h>void proc(){ int i = 0; char bar[102]; //102里包括从到这个字符以及结尾的'\0'字符 const char* lable = "-\\|/"; memset(bar,0, 102*sizeof(char)); while(i <= 100) { bar[i]= '#'; //进度条的动态进程由#增长 printf("[%-100s][%d%%][%c]\r", bar, i,lable[i%4]); //lable%4可以使字符串中的每一个字符交替动态显示 fflush(stdout); //fflush()清空动态缓冲区,C语言下的缓冲区以行形式读取和存储,所以如果没有遇到\n, //缓冲区不会将数据映射到显示器上,为直接进入sleep函数,所以需要强制刷新 i++; usleep(100000); } printf("\n");}int main(){ proc(); return 0;}
②创建Makefile进行编辑
③输入make指令,会生成test.c的可执行程序test,然后运行./test即可看到结果
④./test运行程序
0 0
- Linux进度条的实现
- linux进度条的实现
- LINUX实现简单的进度条
- Linux进度条的实现过程
- linux vim进度条的实现
- Linux实现简单的进度条
- linux 进度条的脚本实现
- 【Linux】Linux下进度条的模拟实现
- Linux下的进度条的实现
- linux 下的进度条的实现
- 简单实现linux下的循环进度条
- linux下进度条的简单实现
- linux中实现一个简单的进度条
- Linux中实现一个简单的进度条
- linux下进度条的简单实现
- 用linux实现一个简单的进度条
- Linux中实现一个简单的进度条
- linux下实现简单的进度条
- java, Statement类的介绍
- JavaScript File对象的初始化
- Switch...case...注意事项
- 树莓派上beautifulsoup安装注意事项
- librtmp发送AVC,AAC数据包
- Linux进度条的实现
- Snow祝你元宵节快乐!(求n的阶乘的位数)
- Java中的equals
- 挖矿程序minerd入侵分析和解决办法
- 数据结构---栈(数组实现)
- 二叉树建立,前序遍历,中序遍历,后序遍历 思路
- getParameter/geAttribute
- 白话经典算法系列之九 从归并排序到数列的逆序数对(微软笔试题)
- C++中的静态数据成员