linux下用C++代码实现简单的进度条

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

      首先我们来分析一下这个进度条的实现原理,我先想到的是一个数组,然后利用循环来实现,接下来的细节部分用一个 ‘ # ’ 代替百分之一的大小,加上进度条左右的中括号那么可以确定数组的大小应该是【102】,至于进度条的输出速度我们可以用之前了解过的Sleep函数来控制速率。大概情况就是这样,用代码试试看。


#include <stdio.h>
#include <unistd.h>

int main()
 {
	int i = 0;
	char bar[102];
	bar[0] = 0;
	while (i <= 10)
	{
		printf("[%-100s][%d%%]\r", bar, i);
		fflush(stdout);
	    bar[i] = '#';
		i++;
		bar[i] = 0;
		usleep(100000);
	}
	printf("\n");
	return 0;
}


   程序运行显示并没有按我们预先设想的那样输出,调试发现问题出在系统的输出缓存区,这是系统为了提高效率的一项机制,为了我们能正常输出我们用了一个函数fflush(stdout)这是强制刷新缓存区。同时我们为了进度条更形象又增加了循环加载的图示符,用"|/-\\"也是通过循环造成旋转的效果。还有一个知识,是C语言中了解到的 “\r” 是回车换行的意思,回

linux下C/C++实现进度条(使用make/makefile) 实现一个简单进度条,动态展示解压或下载进度。需要实现的功能: 打印动态增长的字符串用来显示进度(每次都在同一行覆盖输出字符串,换行,需要使用\r) 动态增长的百分比反应百分比。 一个动态字符反映这个进度条是否工作。 #include #include #include void progress() { char progress_bar[102]; memset(progress_ 阅读详情

相关推荐

Linux】makefile、进度条实现

我们今天给大家讲解一下Linux中的另外一个重要工具-Linux项目自动化构建工具Makefike的使用。由于使用命令编译链接文件比较繁琐,如果文件一多,那么一个一个处理将要耗费大量的时间。那么,在Linux中开发有什么方法解决这个问题呢?带着这个疑惑我们来开启这一篇文章的学习吧~

Become Mad的博客 1525

Linux下模拟实现进度条实例详解

Linux下模拟实现进度条  在Linux系统下模拟进度条,首先需要了解一些简单基础知识:     1、在Linux系统下,\r是回车符,\n是换行符,回车是行变光标回到该行的起始位置,换行是跳转到下一行,但是光标位置变;     2、C\C++的输入输出都有缓冲区,都为行缓冲,行刷新,通过回车换行刷新到I\O区;     3、1秒 = 1*10的三次方毫秒 = 1*10的6次方微秒 Linux下c代码实现: 编写Makefile: 代码运行结果: 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! 您可能感兴趣的文章:Linux用ma

Qt案例-编译阿里云OSS对象存储C++ SDK源码,并进行简单下载,上传数据,显示进度等相关功能

阿里云对象存储(Object Storage Service,简称OSS),是阿里云对外提供的海量、安全、低成本、高可靠的云存储服务。用户可以通过调用API,在任何应用、任何时间、任何地点上传和下载数据,也可以通过用户Web控制台对数据进行简单的管理。OSS适合存放任意文件类型,适合各种网站、开发企业及开发者使用。

... 2540

Linux C语言下TCP传文件,并显示传输进度条

1.本文介绍将文件通过sever传到client端,并显示传输进度条 2.打开一个终端,执行./file_server在file_server所在目录下放好要传的文件tianitande.mp3可通过宏FILE_NAME来改变或者做成参数传进去 3.将file_client拷贝到file_server目录外的其他目录,执行file_client便会将tianitande.mp3

Kinglate 4444

C语言 Linux实现进度条

tittle:C语言 Linux实现进度条进度条小程序是Linux初学者熟悉环境的经典练习用小程序。完成这样一段小代码需要有C语言基本入门知识,并了解缓冲区、输入输出流的基本内容。 以下是代码实现和注释解析:

Meliorem的博客 1252

Linux】用c++实现进度条程序

无论下载,解压缩,复制等情况时,我们总能看到进度条这种东西。进度条以图片形式的可视化窗口直观的显示出计算机处理当前任务的速度,完成度,剩余完成的任务量,以及需要的时间等信息,所以在此我们可以自主实现一个简易的进度条小程序,在centos环境下的Linux系统下编写. 其中fflush是刷新文件缓冲区的。

prerfect_cat的博客 1017

Linux学习笔记之print process

print process 最近突然想在linux 打印process,就像Windows进度条。就查了查资料,才发现原来我们的printf 有这么厉害的功能。下面我们看下代码: 这里要注意的是, “fflush(stdout); “, 看到flush 和 sdout,大家就算知道实现原理,应该也是可以猜到其中的含义了。 代码功能总体是比较简单的,最好的学习方法就是,自己修改其中的...

small_a_black的博客 432

Linux简单进度条实现

Linux简单进度条实现,使用Makefile编译,巩固学习知识

tan_run的博客 742

Linux小项目---简易进度条实现

当我们把相对应的文件创建好后,我们先要着急编写代码,先创建一个makefile文件,知道makefile文件的作用可以去阅读我上一篇博客进行学习。当我们把makefile文件创建好后,先进行测试,可以执行后再去编写其余文件的代码,避免后续因为makefile文件的出错而导致代码无法正常工作。编写makefile文件内容:这段代码中的。

顾得泉的博客 1748

Linux】使用Linux实现小程序 - 进度条

这篇文章简要介绍了缓冲区的作用、回车换行的基本概念,并详细探讨了进度条设计的三个版本演进:从无场景配合的基础版,到结合具体场景增强用户体验的进阶版,再到最终通过美化提升视觉效果的最终版。

是阿建吖! 6789

Linux小程序——进度条

linux进度条

2303_78442132的博客 6216

Linux】从零开始:编写你的第一个Linux进度条小程序

Linux编程的学习过程中,制作一个进度条小程序是入门的好选择。本教程将从零开始,带你轻松实现第一个Linux进度条,感受编程的乐趣与成就

专注于 C/C++ 后端开发,涵盖基础语法、Linux系统与网络、MySQL数据库、常见算法及项目经验。 1万+

LinuxLInux下第一个程序:进度条

本文介绍了在Linux环境下编写第一个程序——进度条实现过程。首先讲解了回车换行符的区别及缓冲区原理,通过示例代码展示了缓冲区刷新问题。随后详细讲解了进度条实现步骤:使用字符数组表示进度,通过fflush刷新缓冲区,添加百分比和旋转光标效果。最后模拟真实下载环境,实现动态更新的进度条功能。文章还提供了完整的代码实现,包括makefile文件,帮助读者在Linux系统上快速构建和运行进度条程序。

记录学习与成长 3544

Linux】简易进度条实现

缓冲区(`Buffer`)是计算机内存中的一块特定区域,用于==临时存储数据==。它在许多计算机系统和应用程序中发挥着重要作用,通常用于==临时存储输入数据、输出数据或在内存和其他设备之间进行数据传输。==编写简易的进度条

有趣的中国人的博客 1427

Linux简单进度条实现

首先呢,我给出代码进度条效果图,后面来进行详解。 如上图所示,这进度条实现的也着实简单(略显尴尬),但进度条原理本质就是如此,只过多了些修饰,下面来进行详解。 unistd.h是C、C++程序设计语言中提供对POSIX(可移植操作系统接口)操作系统API的访问功能的头文件的名称。 usleep函数是延时函数,单位为微秒。下面看个有趣的现象 看上面这段简单代码,他实现的效果是先延迟三秒,

丁香枝上,豆蔻梢头 781

Linux从练气到飞升》No.07 Linux第一个小程序-进度条实现

前面几章我们讲述了Linux指令、权限管理、编辑器、编译器、软件包管理器、自动化管理工具,也写了简单的”Hello World“程序,但是没有实现过复杂一点的程序,光说练假把式,今天就带大家来做一个小项目--进度条

进一步有一步的欢喜 6374

Linux进度条

Linux进度条

shizhongruyi0606的博客 2398

Linux】多文件操作|进度条实现

通过小程序进度条了解Linux下的多文件操作

Yui_的博客 2442

Linux下模拟实现进度条

Linux下模拟实现进度条  在Linux系统下模拟进度条,首先需要了解一些简单基础知识:     1、在Linux系统下,\r是回车符,\n是换行符,回车是行变光标回到该行的起始位置,换行是跳转到下一行,但是光标位置变;     2、C\C++的输入输出都有缓冲区,都为行缓冲,行刷新,通过回车换行刷新到I\O区;     3、1秒 = 1*10的三次方毫秒 = 1*10的6次方微秒

he_shuai20的博客 1555
上一篇: C++中的虚表(内存分布)
下一篇: C++模板实现简单的链表和顺序表
blight_888
博客等级 码龄10年 6粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值