Linux基础篇五(进度条)

原创 2016年06月08日 07:50:25

一、基本思路

主要就是模仿一些模仿一些游戏或者软件在安装的过程中的进度条。

主要包括一下几个方面:

(1)进度条

(2)进度的数字显示(%多少了)

(3)用一个标识标志文件是否任务还在进行

二、背景知识的铺垫

1、缓存区

先来看两份代码:

第一份:

#include<stdio.h>

int main()
{
	printf("hello world");
	sleep(5);
	return 0;
}
运行结果:

程序运行5秒后,在屏幕上打印出hello world同时程序结束

第二份:

#include<stdio.h>

int main()
{
	printf("hello world\n");
	sleep(5);
	return 0;
}
运行结果:

程序运行后,立刻打印出hello world,等待5秒中之后程序结束

思考:为什么不加\n打印的顺序不一样?

(1)printf为C语言相关的函数,在内存中有缓存去的概念,并且默认为行缓冲,直到缓冲区写满或者遇到\n(换行符,\r仅仅是回车但是并不换行),这时候将缓存区中的内容写出

(2)第一个程序将“hello world”写入缓冲区中,但是缓存区并没有写满,这个时候程序会继续执行sleep(5),程序退出的时候,程序强行清理行缓冲区

2、回车和换行的区别

\r : return 到当前行的最左边。
\n: newline 向下移动一行,并不移动左右

由于进度条每次都会

3、fllush函数

功能:强行将缓存去中的内容写出

下面这三个很重要:

(1)stdout(标准输入)

(2)stdin(标准输出)

(3)stderr(标准错误)

三、具体实现:

代码如下:

#pragma once
#include<stdio.h>
#include<string.h>

void ProBar()
{
	int rate = 0;
	char buffer[102];
	memset(buffer, '\0', sizeof(buffer));
	const char* lable = "|/-\\";
	while (rate <= 100)
	{
		buffer[rate] = '=';
		usleep(100);
		printf("[%-100s][%d%%]%c\r", buffer, rate, lable[rate % 4]);
		fflush(stdout);
		rate++;
	}
	printf("\n");
}

int main()
{
	ProBar();
	return 0;
}

四、运行效果

1、代码截屏


2、运行效果

过程中:


运行结束:



版权声明:本文为博主原创文章,未经博主允许不得转载。

cocos2dx基础篇(23)——进度条CCProgressTimer

【唠叨】     哎,周围的同学都在搞cocos2dx 3.X了,而我还在用2.2.3。没办法,网上3.X的教程毕竟很少,还是等我的同学学得差不多了,我再换成3.X跟着同学搞,哪里不会问哪里...

程序进度条基础篇(WPF、C#、BackgroundWorker、代码说明)

其实进度条主要的思想就是采用多线程操作,让耗时的操作在后台完成,完成后再进行处理或给出提示,在运行中,也会时时去刷新界面上的进度条等显示。在.net中,提供了一个组件BackgroundWorker可...

Android基础之UI设计与开发---------自定义进度条

一、在开发中我们经常要用到进度条显示下载或者加载的进度。系统自带的黄色进度条在UI效果上经常不能满足策划或者美工的要求。这就要我们屌丝程序员自己自定义进度条。 话不多说,先上图。         实现...

Android基础入门教程——2.3.7 ProgressBar(进度条)

Android基础入门教程——2.3.7 ProgressBar(进度条) 本节引言: 1.常用属性讲解与基础实例 2.使用动画来替代圆形进度条 3.自定义圆形进度条 本节小结:...

Android----SeekBar进度条显示以及改变滑块样式基础

SeekBar进度条显示以及改变滑块样式基础 直接在布局里面设置一个SeekBar标签,并且加入两个TextView去显示SeekBar进度的数值: ...
  • MR_HJY
  • MR_HJY
  • 2017年11月04日 16:41
  • 139

自定义控件 《进度条,统计圆环图》从0基础开始,备注详细,还有其他小技巧

自定义控件 《进度条,统计圆环图》从0基础开始,备注详细,还有其他小技巧 (后续会不断的更新优化) 说明:外环进度条的颜色 、宽度、底色;百分比的字体、大小、颜色;文字的大小、颜色、进度条动态加...

AlertDialog编辑框无法调出输入法、锁定Activity方向、自定义进度条的WebView基础使用

1.安卓系统的AlertDialog中点击EditText无法调出系统输入法软键盘的貌似,如下写即可调出   AlertDialog.Builder mBuilder = new AlertDial...

【Android基础学习】带进度条的WebView

原文地址:http://www.cnblogs.com/over140/archive/2013/03/07/2947721.html 声明    欢迎转载,但请保留文章原始出处:) ...

EasyUI基础入门之searchbox&progressbar(搜索框和进度条)

easyui基础部分的学习(八大部分)只剩下searchbox和pargressbar、tooltip了,有点小激动呢。本偏文章将对searchbox和pargressbar做一个学习。鉴于两者的内容...
  • kiritor
  • kiritor
  • 2014年06月05日 10:11
  • 2834

进度条简明基础(Progress Bar)

MSDN地址: http://msdn.microsoft.com/en-us/library/bb760818(v=vs.85) 进度条风格 Progress Bar Style PBS_SMO...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux基础篇五(进度条)
举报原因:
原因补充:

(最多只允许输入30个字)