Linux环境下写一个进度条
来源:互联网 发布:苹果看图软件 编辑:程序博客网 时间:2024/06/07 16:59
源代码:
void prog()
{
char prog_buf[102];
memset(prog_buf,'\0',sizeof(prog_buf));
char *sign="|/-\\"; //在进度条推进的时候,光标在以顺时针旋转
int i=0;
for(i=0;i<=100;i++)
{
prog_buf[i]='=';
printf("[%-101s][%%%d][%c]\r",prog_buf,i,sign[i%4]);
//显示进度条进度,[%-101s]表示显示的时候预留101个位置,-表示输出的时候左对齐,\r表示每次循环输出的时候回到上一次输出的位置
fflush(stdout);
usleep(100000);
}
printf("\n");
}
***********************************prog.c文件内容*******************************************
*************************************main.c文件内容****************************************
************************************prog.h文件内容******************************************
*************************************makefile文件内容***************************************
************************************进度条推进***********************************************
为什么会用到fflush函数?
请先看下面的例子
int main()
{
printf("hello bit\n");
sleep(3);
return 0;
}
结果:先打印hello bit,再睡3秒,再返回
int main()
{
printf("hello bit");
sleep(3);
return 0;
}
结果:先睡3秒,再打印,再返回
int main()
{
printf("hello bit");
fflush(stdout); //刷新标准输出缓冲区中的内容
sleep(3);
return 0;
}
结果:先打印,再睡3秒,再返回
原因:标准输出默认为行缓冲,以\n为尾打印,若是没有\n,则先把输出内容写入输出缓冲区
在写进度条的时候,我们并不希望在下一次循环中换行输出,所以,输出的内容会先写到标准输出缓冲区中,所以需要用用fflush刷新标准输出缓冲区的内容输出
0 0
- Linux环境下写一个进度条
- 在Linux环境下编写一个简单的进度条
- Linux下实现一个进度条
- linux下实现一个进度条
- 【Linux】写一个简单的进度条
- 【Linux】 写一个简单的进度条
- Linux-用shell脚本写一个进度条
- linux下执行进度条和写makefile
- Linux环境下写一个 简单的 makefile
- Linux环境下写一个 简单的 makefile
- Linux环境下模拟实现进度条
- 在Linux下用C语言写一个小程序实现一个进度条编写Makefile来进行运行
- Linux下编写一个进度条函数
- Linux下编写一个简单的进度条
- 写一个进度条~~
- 写一个进度条程序
- Linux--用shell脚本写一个彩色进度条
- 【Linux】Linux下实现一个简单的进度条程序
- WebRTC的视频传输的大致流程
- 二叉树的下一结点
- STM32F103RE使用SPI3作为从模式
- 关于Java中的String为什么不可变
- virtualBox安装centos6增强包报错解决及配置共享文件夹
- Linux环境下写一个进度条
- 多任务系统
- vim使用
- 普通Menu案例
- 1的数目
- arm-linux-uboot-kernel-rootfs移植
- 前谷歌首席 Java 架构师谈如何设优秀的 API
- EJB包括什么
- leetcode8. String to Integer (atoi) & 探讨补码运算溢出