怎么写C++命令行下的进度条

aquaskyline 2008-08-27 02:30:18
写了一个生物科研方面的软件,运行时间较长没有进度条都不知道在运行还是死机了。
希望大家能提出一些写命令行下进度条的经验,比如怎么在原行下面清空再输出。
...全文
506 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zonghenglls 2008-08-29
  • 打赏
  • 举报
回复
要做到这个,首先你自己的程序要能判断出现在是在正常运行,还是出现了异常
进度条只不过是一种显示方式,拿....代替也可以
aquaskyline 2008-08-29
  • 打赏
  • 举报
回复
自己写了一个原行输出的,效果很好!
void ProgressTube(int current,int total,int mark)
{
static int progress;
switch(mark)
{
case 0:
{
progress=0;
cerr<<"[ ]";
cerr<<"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";
return;
}
case 1:
{
int count=(int)((((float)current/total*100)/2)-progress);
if (count)
{
progress += count;
while (count)
{
cerr<<'#';
count--;
}
}
return;
}
case 2:
{
int remain=50-progress;
while (remain)
{
cerr<<"#";
remain--;
}
cerr<<"] Done!\n";
return;
}
}
}
aquaskyline 2008-08-29
  • 打赏
  • 举报
回复
谢谢咯
chinanet2010 2008-08-29
  • 打赏
  • 举报
回复
用好\b和\r这两个转义字符,应该能做成
太乙 2008-08-28
  • 打赏
  • 举报
回复
汗~~控制台下进度条~
alibabamt1 2008-08-28
  • 打赏
  • 举报
回复
void main
{
printf("进度条");
}
two_ears 2008-08-28
  • 打赏
  • 举报
回复
7楼写的很好,呵呵
two_ears 2008-08-28
  • 打赏
  • 举报
回复
如果希望“原行清空”再输出,在MSDN里查一下console相关的函数吧,应该可以,也不是很难用
jackzhhuang 2008-08-28
  • 打赏
  • 举报
回复
用省略号代替吧
kingstarer 2008-08-27
  • 打赏
  • 举报
回复
\r
开心爸爸84 2008-08-27
  • 打赏
  • 举报
回复
1楼写的很好
gaoxiaowei 2008-08-27
  • 打赏
  • 举报
回复
控制台下为什么要搞进步条呢 直接cout信息不就可以了吗
zsyddl2 2008-08-27
  • 打赏
  • 举报
回复


#include "stdafx.h"
#include "Windows.h"


int _tmain(int argc, _TCHAR* argv[])
{
printf("begin\n");
int nProgress=0;
bool bIns = true;
while(1)
{
if (bIns)
{
printf("#");
nProgress++;
}
if (!bIns)
{
printf("\b \b");
nProgress--;
}
if (nProgress >= 10)
{
bIns = false;
}
else if (nProgress <=0 )
{
bIns = true;
}

Sleep(500);
}
getchar();
return 0;
}

zsyddl2 2008-08-27
  • 打赏
  • 举报
回复

#include "stdafx.h"
#include "Windows.h"


int _tmain(int argc, _TCHAR* argv[])
{
printf("begin\n");
int nProgress=0;
bool bIns = true;
while(1)
{
if (bIns)
{
printf("#");
nProgress++;
}
if (!bIns)
{
printf("\b \b");
nProgress--;
}
if (nProgress >= 10)
{
bIns = false;
}
else if (nProgress <=0 )
{
bIns = true;
}

Sleep(500);
}
getchar();
return 0;
}
aquaskyline 2008-08-27
  • 打赏
  • 举报
回复
自己顶
C++Builder精彩编程实例集锦的源代码(1,2,3部分): 第一部分 界面设计 实例001 如何实现程序闪屏效果 实例002 如何实现程序窗口闪烁 实例003 如何制作吸附窗口程序 实例004 如何制作透明程序窗口 实例005 如何制作半透明程序窗口 实例006 如何制作不规则程序窗口 实例007 如何制作程序渐变背景 实例008 如何设置程序背景图像 实例009 如何设置MDI程序背景图像 实例010 如何动态关闭MDI程序所有子窗口 实例011 如何去掉MDI程序子窗口标题栏 实例012 如何拖动非标题栏区域移动窗口 实例013 如何控制程序最小化窗口 实例014 如何限制程序最大最小化窗口 实例015 如何控制程序窗口自动隐藏或显示 实例016 如何隐藏应用程序 实例017 如何控制程序在任务栏上是否出现 实例018 如何使一个程序在任务栏同时出现多个标题 实例019 如何使程序窗口总在最前面显示 实例020 如何隐藏应用程序标题栏 实例021 如何设置程序主标题 实例022 如何设置程序图标 实例023 如何在程序中改变菜单位置 实例024 如何删除程序系统关闭菜单 实例025 如何拷贝当前程序界面 实例026 如何动态创建程序表单 实例027 如何遍历窗体所有组件 实例028 如何保证组件位置相对固定 实例029 如何在窗体中动态增加组件 实例030 如何使组件在程序运行时可以移动 实例031 如何使用组件创建托盘程序 实例032 如何使用动画组件播放动画 实例033 如何在状态栏上加载进度条 实例034 如何在编辑框内显示图像 实例035 如何在列表框中增加水平滚动条 实例036 如何在列表框中同时显示图像和文字 实例037 如何设置属性表组件标签图像 实例038 如何控制Memo组件的文字边界 实例039 如何使用代码控制文字滚动 实例040 如何纵向显示字符串 实例041 如何旋转显示字符串 实例042 如何设置显示文字分辨率 第二部分 程序设置 实例043 如何使用消息框 实例044 如何显示简单关于对话框 实例045 如何在程序中增加热键 实例046 如何在程序中自定义消息 实例047 如何在程序中自定义系统菜单 实例048 如何在执行程序间进行数据通信 实例049 如何使用OLE技术启动画图 实例050 如何在程序中添加Word文档表格 实例051 如何在程序中设置Word文档的字体风格 实例052 如何使用Onldle事件 实例053 如何使程序在循环时响应外界事件 实例054 如何设置程序在系统启动时自动运行 实例055 如何创建多线程程序 实例056 如何创建可独立执行程序 实例057 如何编单文档应用程序 实例058 如何编多文档应用程序 实例059 如何编COM服务器程序 实例060 如何编COM客户端程序 实例061 如何编DDE服务器程序 实例062 如何编DDE客户端程序 实例063 如何编DLL服务器程序 实例064 如何编DLL客户端程序 实例065 如何注册DLL服务器程序 实例066 如何制作聊天服务器程序 实例067 如何制作聊天客户端程序 实例068 如何获取程序名称和路径 实例069 如何获取程序命令行参数 实例070 如何析取动态链接库中的图标 实例071 如何设置Edit组件的文本选择范围 实例072 如何将小金额转换成大金额 实例073 如何将全角字符串转换成半角字符串 实例074 如何按照指定的有效位数转换数字 实例075 如何获取汉字的拼音索引 实例076 如何设置输入方法 实例077 如何控制数据输入格式 实例078 如何控制编辑框中的输入法 实例079 如何设置回车键后的焦点 实例080 如何将项目保存到对象库 实例081 如何检测鼠标信息 实例082 如何读取鼠标信息 实例083 如何实现鼠标拖动操作 实例084 如何限制鼠标活动范围 实例085 如何读取键盘信息 第三部分 文件操作 实例086 如何复制文件 实例087 如何定制文件复制操作 实例088 如何更名文件 实例089 如何更改文件扩展名 实例090 如何删除文件 实例091 如何删除文件夹 实例092 如何选择文件夹 实例093 如何创建多层文件夹 实例094 如何自动获取文件夹和文件 实例095 如何搜索指定目录下的文件 实例096 如何搜索指定目录下的隐藏文件 实例097 如何搜索文本文件中的字符串 实例098 如何替换文本文件中的字符串 实例099 如何将长文件名转换为短文件名 实例100 如何在文件打开对话框中选择多个文件 实例101 如何定制文件打开和关闭对话框 实例102 如何修改文件打开对话框的按钮标题 实例103 如何使用查找与替换对话框 实例104 如何获取和设置当前目录 实例105 如何判断文件类型 实例106 如何获取系统所有文件类型 实例107 如何获取和设置文件属性 实例108 如何获取和设置文件时间属性 实例109 如何对文件名函数进行操作 实例110 如何读文本文件 实例111 如何打印文本文件 实例112 如何创建特大型文件 实例113 如何制作临时文件 实例114 如何启动帮助文件 实例115 如何使用组件在主机问传送文件 实例116 如何对文件进行编码和解码 实例117 如何设置RichEdit组件的存盘格式 实例118 如何在WIN.INI文件中保存程序信息 实例119 如何将数据转换成Word文档格式 实例120 如何直接从Excel文件导入数据 实例121 如何直接将数据导入到Excel文件 实例122 如何发送电子邮件(一) 实例123 如何发送电子邮件(二)

64,636

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧