控制台实现进度条
来源:互联网 发布:dm500刷机软件 编辑:程序博客网 时间:2024/06/08 08:54
#include "stdio.h"#include <windows.h>#include <process.h>int g_iCnt = 0;int l_iSum = 10000;HANDLE hSemaphore;void vDisplayProBar(int p_iNumBarCh, int p_iCompletedValue, int p_iSumValue);unsigned int _stdcall ThreadFun(void *pPM);int main(){DWORD l_dwStartTime = 0;DWORD l_dwEndTime = 0;hSemaphore = CreateSemaphore(NULL, 0, 1, NULL);HANDLE handle = (HANDLE)_beginthreadex(NULL, 0, ThreadFun, 0, 0, NULL);Sleep(1000);g_iCnt = 0;l_dwStartTime = GetTickCount();while(g_iCnt<l_iSum){g_iCnt++;Sleep(1);l_dwEndTime = GetTickCount();if((l_dwEndTime-l_dwStartTime)>100 || g_iCnt>=l_iSum){l_dwStartTime = l_dwEndTime;ReleaseSemaphore(hSemaphore, 1, NULL);}}Sleep(100);printf("\n%d\n", g_iCnt);CloseHandle(hSemaphore);return 0;}void vDisplayProBar(int p_iSumBarCh, int p_iCompletedValue, int p_iSumValue){char l_acStr[20] = "";int i = 0;static int l_iLastNumBarChToDis = 0;int l_iNumBarChToDis = (int)(((float)p_iCompletedValue)/((float)p_iSumValue)*p_iSumBarCh);for(i=0; i<p_iSumBarCh-l_iLastNumBarChToDis; i++){printf("\b");}for(i=0; i<p_iSumBarCh-l_iLastNumBarChToDis; i++){if(i <= (l_iNumBarChToDis-l_iLastNumBarChToDis)){printf(">");}else{printf("=");}}_snprintf(l_acStr, sizeof(l_acStr), " %.2f%%", ((float)p_iCompletedValue/(float)p_iSumValue)*100);printf("%s", l_acStr);for(i=0; i<strlen(l_acStr); i++){printf("\b");}l_iLastNumBarChToDis = l_iNumBarChToDis;}unsigned int _stdcall ThreadFun(void *pPM){while(g_iCnt<=l_iSum){WaitForSingleObject(hSemaphore, INFINITE);vDisplayProBar(50, g_iCnt, l_iSum);}return 0;}
参考链接:
http://blog.csdn.net/morewindows/article/details/6742078
0 0
- 控制台实现进度条
- python实现的控制台进度条
- Python实现控制台中的进度条
- 飘逸的python - 实现控制台进度条效果
- c++ 控制台模式下实现的简单进度条
- C#控制台显示进度条
- C++ 控制台,输出进度条
- C语言控制台进度条
- C#控制台显示进度条
- 控制台进度条—— ConProgressBar
- Python在控制台输出进度条
- 进度条实现
- 进度条实现
- C#进度条之控制台显示浅析
- 让控制台程序也能拥有进度条
- Python如何在控制台显示进度条
- RCP程序实现进度条
- javascript实现进度条
- 可见字符-中英文全半角关系
- 螺旋矩阵
- 蓝桥杯基础练习 十六进制转十进制
- 关于java字符串
- (转)第一次使用Android Studio时你应该知道的一切配置
- 控制台实现进度条
- javax.ws.rs + jsersey + tomcat 创建一个简单的rest服务
- 自己写了一个简单的mysql数据库连接类
- AndroidStudio 使用Gradle 导出Jar包 终于摆脱Eclipse了
- 根据上排给出十个数,在其下排填出对应的十个数 要求下排每个数都是先前上排那十个数在下排出现的次数
- javah生成jni的C函数声明
- 蓝桥杯基础练习 十进制转十六进制
- qt线程调用QAXObject(Excel,word)并传信号
- 定位