当前位置: 首页 > news >正文

Linux一个系统程序——进度条

一、回车与换行

\n :回车加换行

\r:换行

 观察我们发现以上的两个代码除了缺少/n没有任何区别,但是运行代码之后我们会发现有何大的不同,图一会先在屏幕上打印helloworld在进行休眠2,但是图二会先休眠2在打印helloworld,原因是printf的作用是将括号中的值复制到一个c语言的缓冲区中,但是如果遇到\nor   \r\n    \n 会将他们之前的内容,全部刷新到显示器,程序退出的时候,曾经的历史数据,会被刷新。

强制刷新

fflush(stdout)

二、写一个倒计时的程序

两位数的打印

2d更新两位,-2d左对齐

进度条代码

三、代码

process.c

#include "process.h"2 void Process()3 {4    char buffer[NUM];5    memset(buffer ,'\0',sizeof(buffer));6    const char *lable = "|/\\";7    int i = strlen(lable);8    int cnt = 0;9    while(cnt<=100)10    {11      printf("[%-100s][%d%%][%c]\r",buffer,cnt,lable[cnt%i]);12      fflush(stdout);13       buffer[cnt++] = Style;                                                                                                                                                                 14       usleep(5000);15    }16    printf("\n");17 }

process.h

#pragma  once2 #include <stdio.h>3 #include <string.h>4 #include <unistd.h>5 #define NUM 1026 #define Style '='                                                                                                                                                                            7 void Process();  

main.c

1 #include "process.h"                                                                                                                                                                         2 int main()3 {4   Process();5   return 0;6 }

 Makefile

 BIN=code.exe2 CC=gcc3 SRC=$(wildcard *.c)4 OBJ=$(SRC:.c=.o)5 LFLAGS=-o6 FLAGS=-c7 RM=rm -f8 $(BIN):$(OBJ)9   $(CC) $(LFLAGS) $@ $^ 10 %.o:%.c11   $(CC) $(FLAGS) $<                                                                                                                                                                          

相关文章:

  • 【基础篇】prometheus页面UI功能详解
  • C# 类(Class)教程
  • web 开发中,前端部署更新后,该怎么通知用户刷新
  • Java EE 计算机的操作系统
  • Python爬虫课程实验指导书
  • ZeroGrasp:零样本形状重建助力机器人抓取
  • Pikachu靶场-目录遍历
  • 单相交直交变频电路设计——matlab仿真+4500字word报告
  • Python multiprocessing.Pool中,pool.close() 和 pool.join() 的作用
  • 【JavaScript】关系运算符--非数值类型、Unicode编码表
  • Pmax非英语国家投广,Feed语言和货币问题解决策略
  • Laravel5.7的一些用法
  • DuckDB:现代数据分析的“SQLite“内核革命
  • 人类社会的第四阶段
  • web字符转义
  • 特伦斯智慧钢琴:开启智能钢琴新体验
  • 国产免费工作流引擎star 5.9k,Warm-Flow版本升级1.7.0(新增大量好用功能)
  • FreeMarker语法深度解析与Node.js集成实践指南
  • 使用Nestjs, Bun 和 NCC 打造高效的 Node.js 应用构建流程
  • 高校毕业论文管理系统小程序实现
  • 文旅部:加强对景区索道、游船等设施设备安全隐患排查整治
  • 网友建议平顶山请刘昊然任旅游宣传大使,市委:有此设想,正申请经费
  • 共生与伴生:关于人工智能时代艺术评论的对象与主体的思考
  • 深圳一购房者交首付后迟迟无法签合同,澎湃介入后开发商承诺退款
  • 日本政府强烈反对美关税政策并要求其取消
  • 新华社评论员:在推进中国式现代化的宽广舞台上绽放青春光彩