linux下的一个小程序--模拟进度条
来源:互联网 发布:申请淘宝商家披露信息 编辑:程序博客网 时间:2024/05/16 01:12
背景知识
1.回车换行
在生活中,我们不是很清楚回车换行的区别,只以为是从一行换到下一行,认为这是一个概念。其实在计算机中,回车和换行是两个东西
回车是指跳回这一行的行首 \r
换行是指跳到下一行,列位置不变 \n
所以计算机在换行的时候是先换行再回车的
2.sleep 和usleep
函数名: sleep
头文件: #include <unistd.h> // 在gcc编译器中,使用的头文件因gcc版本的不同而不同
功 能: 执行挂起指定的秒数
函数名: usleep
头文件: #include <unistd.h>
功 能: usleep功能把进程挂起一段时间, 单位是微秒(百万分之一秒)
时钟换算:
微秒,时间单位,符号us(英语:microsecond ).
1微秒等于百万分之一秒(10的负6 次方秒)
0.000 001 微秒 = 1皮秒
0.001 微秒 = 1纳秒
1,000 微秒 = 1毫秒
1,000,000 微秒 = 1秒
1s = 1000ms
1ms = 1000μs
1μs = 1000ns
1ns = 1000ps
1秒(s) = 1000 毫秒(ms) = 1,000,000 微秒(μs) = 1,000,000,000 纳秒(ns) = 1,000,000,000,000 皮秒(ps)
3.fflush
计算机在执行程序时会打开三个流 stdin、stdout、stderror
fflush用于清空缓冲流,虽然一般感觉不到,但是默认printf是缓冲输出的。
fflush(stdout),使stdout清空,就会立刻输出所有在缓冲区的内容。
在printf()后使用fflush(stdout)的作用是立刻将要输出的内容输出。
当使用printf()函数后,系统将内容存入输出缓冲区,等到时间片轮转到系统的输出程序时,将其输出。
使用fflush(out)后,立刻清空输出缓冲区,并把缓冲区内容输出。
例如:
for (ctr = 1; ctr <= wait; ctr++)
{
printf("."); /* print a dot */
fflush(stdout); /* force dot to print on buffered machines */
sleep(1); /* pause 1 second */
}
用fflush(stdout)能使机器每输出一个.暂停一秒钟,而不会出现乱序(例如:PP。。。PP。PPP。。。等)现象。
程序分析
#include<stdio.h>#include<unistd.h>int main(){int i = 0;char bar[102]; //0到100 有101个数,102位置存放'\0'const char *lable = "-\\|/";//每次刷新显示不一样的字符,表示进度条在加载bar[0] = '\0';while (i <= 100){printf("[%-101s][%d%%][%c]\r",bar,i,lable[i%4]);//%-101s表示字符串靠左输出空出101格,\r回车符跳到行首fflush(stdout); //刷新标准输出流bar[i++] = '=';// = 表示进度条已经走过的部分bar[i] = '\0';usleep(50000);}printf("\n");return 0;}
结果如图
- linux下的一个小程序--模拟进度条
- 在Linux下编写一个进度条的小程序
- Linux下的进度条小程序
- Linux下的小程序:进度条
- Linux下的进度条小程序
- Linux下进度条小程序
- Linux下的第一个小程序之进度条
- 【Linux】Linux下实现一个简单的进度条程序
- Linux下实现进度条小程序
- linux下实现进度条小程序
- Linux下编写进度条小程序
- 【Linux】linux下模拟进度条的编写
- 【Linux】Linux下进度条的模拟实现
- Linux下的进度条程序
- 在Linux下用C语言写一个小程序实现一个进度条编写Makefile来进行运行
- Linux下模拟实现进度条
- Linux下模拟实现进度条
- unbuntu 下进度条小程序
- Postgre数据库timestamp日期
- IE 浏览器兼容
- C++中#pragma的用法
- java Excel 文件解析存入数据库 整型数据被整成科学记数法
- 13.子查询返回多行多列的数据
- linux下的一个小程序--模拟进度条
- Python 数据库操作
- 解决Dev-c++不能调试的方法
- php __FILE__ __DIR__魔术常量的使用
- fragment使用时 Can not perform this action after onSaveInstanceState
- 基于TCP的RPC
- Maven私服问题汇总
- Oracle创建表空间、创建用户以及授权
- CSS选择器