当前位置: 首页 > 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) $<                                                                                                                                                                          

http://www.dtcms.com/a/160049.html

相关文章:

  • 【基础篇】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 应用构建流程
  • 高校毕业论文管理系统小程序实现
  • Spring MVC 多个拦截器的执行顺序
  • AI测试工具Testim——告别自动化测试维护难题
  • 开源|上海AILab:自动驾驶仿真平台LimSim Series,兼容端到端/知识驱动/模块化技术路线
  • git每次push都要输入用户名和密码很繁琐,只在第一次输入之后都不需要的解决方法
  • 企业架构之旅(1):TOGAF 基础入门
  • AI如何重塑DDoS防护行业?六大变革与未来展望
  • 【计算机网络分类全解析】从局域网到广域网的工程实践
  • 生成式人工智能认证(GAI认证)要学哪些知识?
  • DigitalOcean推出Valkey托管缓存服务
  • Pikachu靶场-PHP反序列化漏洞