Linux-C语言实现一个进度条小项目

如何在linux中用C语言写一个项目来实现进度条?(如下图所示)

我们知道\r是回车,\n是换行(且会刷新)

我们可以用 \r 将光标移回行首,重新打印一样格式的内容,覆盖旧的内容,由于机器运行速度非常快,看起来就像原地修改一样

代码如下

cpp 复制代码
#include<stdio.h>
#include<unistd.h>  //需要使用函数fflush来刷新
#include<string.h>

int main()
{
  char bar[101];
  int cnt=0;
  memset(bar,' ',sizeof(bar)); //将bar数组中的所有符号换成\0
  char lable[]="|\\-/";

  while(cnt<=100)
  {
    bar[cnt]='>';
    printf("[%s][%d][%c]\r",bar,cnt,lable[cnt%4]);  //注意要加上\r,不能使用\n
    //由于\r不会刷新数据,屏幕上看不到打印内容,我们使用fflush刷新屏幕
    fflush(stdout); //stdout是标准输出(屏幕)
    bar[cnt++]='-';
    usleep(75000);//让程序休眠,否则运行过快,我们看不到
  }
  printf("\n");
  return 0;
}

编译运行结果如下

可以看到,进度条成功输出

相关推荐
水天需01021 分钟前
Vim 标签页(Tab)操作详解
linux
code bean29 分钟前
【CMake 】[第十篇]CMake find_package 完全指南:让第三方库集成变得简单
c++·cmake
IT199533 分钟前
C++使用“长度前缀法”解决TCP“粘包 / 拆包”问题
服务器·网络·c++·tcp/ip
DeeplyMind1 小时前
第5章:并发与竞态条件-15:Atomic Variables
linux·驱动开发·ldd
Tipriest_1 小时前
旋转矩阵,齐次变换矩阵,欧拉角,四元数等相互转换的常用代码C++ Python
c++·python·矩阵
消失的旧时光-19431 小时前
用 C 实现一个简化版 MessageQueue
c语言·开发语言
秋深枫叶红1 小时前
嵌入式第三十五篇——linux系统编程——exec族函数
linux·前端·学习
hz_zhangrl1 小时前
CCF-GESP 等级考试 2025年9月认证C++六级真题解析
c++·算法·青少年编程·程序设计·gesp·2025年9月gesp·gesp c++六级
@Wufan1 小时前
ubuntu服务器子用户(无sudo权限)安装/切换多个版本cuda
linux·服务器·ubuntu·cuda
studytosky1 小时前
Linux 基础开发工具(3):Git 控制与 GDB 调试实用指南
linux·运维·服务器·网络·数据库·git