终端同一行输出进度信息

直接贴代码:

 1 #define MYSIZE 32*1024*1024
 2
 3 #include <iostream>
 4 #include <iomanip>
 5 #include <fstream>
 6 #include <pthread.h>
 7 #include <stdlib.h>
 8 #include <string.h>
 9 #include <time.h>
10 #include <sys/time.h>
11
12 using namespace std;
13
14 unsigned int My_buffer[MYSIZE];
15
16 string getFileName();
17
18 int main(int argc, char **argv)
19 {
20     //out current thread id;
21     cout<<getpid()<<endl;
22
23     struct timeval tpseed;
24     int n;
25     float process;
26     float rule;
27
28     cout<<"Data Buffer is Creating ...";
29     //clean output buffer
30     fflush(stdout);
31     //process step
32     rule=0.01;
33
34     for(n=0;n<MYSIZE;n++)
35     {
36         //get millionseconds
37         gettimeofday(&tpseed,NULL);
38         //get rand
39         srand(tpseed.tv_usec);
40         My_buffer[n]=(unsigned int)(1+(3000.0*rand())/(RAND_MAX+1.0));
41
42         process=n/(MYSIZE/100.0);
43
44         if(n%(MYSIZE/100)==0 || ((int)process)<10)
45         {
46             if(process>rule)
47             {
48                 rule=rule+0.01;
49                 //clean outside char
50                 cout<<"\r                                                                           ";
51                 /*output avaliable char
52                  *\033[32;5m  set fonts properties
53                  * \033[0m  set fonts nomal
54                  */
55                 cout<<"\r\033[32;5m Data Buffer is Creating \033[31;1m"
56                     <<setprecision(2)<<process<<"%\033[32;5m ...\033[0m";
57                 //clean output buffer
58                 fflush(stdout);
59             }
60         }
61     }
62     cout<<endl;
63     return 0;
64 }
时间: 2024-11-09 10:59:32

终端同一行输出进度信息的相关文章

C#调用GDAL算法进度信息传递

GDAL库中提供了很多的算法,同时也提供了进度条的参数.对于C++调用来说,应该没什么问题,但是对C#调用来说,在进度条这块需要写一个代理来进行传递.首先写一个简单的测试代码. 首先定义一个委托函数原型,需要与GDAL库中的C#进度条接口保持一致,一个简单的原型如下. /// <summary> /// 进度信息回调函数 /// </summary> /// <param name="dfComplete">完成比例,0-1之间的数</para

C语言使用宏输出调试信息实战

如何使用宏定义输出信息 C语言提供了#, ##, __VA_ARGS__等符号来帮助我们在宏定义中更好地输出信息.使用方式如下: 输出如下: #的作用是,它会在所引用的宏变量左右两边加一对引号.所以FUN1中的printf函数不会出错,因为FUN1(hello)预编译时被替换成了printf("hello\n") ##的作用是,把两个宏变量连接成一个,FUN2(1, 2)预编译时被替换成了printf("The num is %d\n", 12) 支持c99标准的编

018输出错误信息与调试信息

实例说明 程序开发过程中对于业务代码的部分功能需要配合调试信息以确定代码执行流程和数据的正确性,当程序出现严重问题时还要输出作物警告信息,这样可以在调试中完成开发.本实例将介绍如何输出调试信息和错误信息. 关键技术 本实例使用System类中的out和err两个成员变量来完成测试信息和错误信息的输出,这两个都是类变量,调用输出流通用的println()方法来输出一行数据. 原文地址:https://www.cnblogs.com/cglib/p/12011762.html

【C语言】用结构体数组完成:有5个学生(包括学号,姓名,成绩),要求按照成绩高低输出学生信息

//用结构体数组完成:有5个学生(包括学号,姓名,成绩),要求按照成绩高低输出学生信息 #include <stdio.h> struct Stu { int num; char name[20]; int score; }; int main() { int i,j; struct Stu student[5]={{317,"han",89},{318,"hu",50},{319,"kang",84},{320,"li&q

【原创】用JAVA实现大文件上传及显示进度信息

用JAVA实现大文件上传及显示进度信息 ---解析HTTP MultiPart协议 一. 大文件上传基础描述: 各种WEB框架中,对于浏览器上传文件的请求,都有自己的处理对象负责对Http MultiPart协议内容进行解析,并供开发人员调用请求的表单内容. 比如: Spring 框架中使用类似CommonsMultipartFile对象处理表二进制文件信息. 而.NET 中使用HtmlInputFile/ HttpPostedFile对象处理二进制文件信息. 优点:使用框架内置对象可以很方便的

如何让Qt程序能在cmd命令行下输出qDebug信息

若让Qt程序能在cmd命令行下输出qDebug()信息, 则在pro文件中增加: WIN32: CONFIG += console 即可. 启动qt程序时会弹出一个cmd框和一个ui框,就可以看到调试信息了.

使用VB6写一个自定义的进度信息框窗口

一.起因说明 之前有些项目是用Access完成的,当时为了给用户显示一些进度信息,自制了一个进度信息窗体,类似下图所示: 随着项目不断变迁,需要将进度信息按阶段及子进度进行显示,并且出于代码封装的需求,需要将其封装到一个dll文件中.最终完成的效果如下图: 调用该进度信息框的代码类似如下所示: 1 Private Sub cmdCommand1_Click() 2 Dim pb As New CProgressBar 3 pb.AddStage "第一步", 10000 4 pb.Ad

[转] 实现winfrom进度条及进度信息提示,winfrom程序假死处理

china_xuhua 原文地址 1.方法一:使用线程 功能描述:在用c#做WinFrom开发的过程中.我们经常需要用到进度条(ProgressBar)用于显示进度信息.这时候我们可能就需要用到多线 程,如果不采用多线程控制进度条,窗口很容易假死(无法适时看到进度信息).下面我就简单结合一个我写的例子给大家做一个介绍. 第一步:设计界面,注意需要引用 using System.Threading; 控件名称分别为: progressBar1:label1:textBox1:button1: 第二

day02_03.五个数字一行输出

第3题 5个数字一行输出 每当你做一道题目时,记住要明确你的目的是什么 你的代码执行出来会是一个什么效果 然后根据你想要的这个效果去编辑代码 题目:输出1~100(不包含100)之间的偶数,5个数字一行输出 <?php for($i=1;$i<100;$i++){ if($i%2==0){ echo $i,"\t"; if($i%5==0){ echo "<br>"; } } } ?> 试试看python的写法吧 for i in ra