当前位置: 首页 > 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.xdnf.cn/news/185059.html

相关文章:

  • QT中的事件及其属性
  • 大学之大:伦敦政治经济学院2025.4.27
  • onnexruntime u2net sharp 实现开源图片处理软件
  • vue 打包设置
  • DFPatternFunctor遍历计算图
  • 【博客系统】博客系统第一弹:博客系统项目配置、MyBatis-Plus 实现 Mapper 接口、处理项目公共模块:统一返回结果、统一异常处理
  • 关于华为高斯数据库出现Invalid or unsupported by client SCRAM mechanisms定位解决的过程
  • -信息革命-
  • OpenManus云端部署及经典案例应用
  • 心磁图技术突破传统局限!心血管疾病早筛迈入“三零“新时代
  • TV launcher官方下载-tv launcher汉化版-tv桌面启动器极简下载
  • c++17 对于临时对象作为右值的优化
  • MRI学习笔记-conjunction analysis
  • Linux——线程(2)线程互斥(锁)
  • 机器学习 | 基于回归模型的交通需求预测案例分析及代码示例
  • 日本IT|UIUX主要的工作都是哪些?及职业前景
  • 【每日随笔】文化属性 ② ( 高维度信息处理 | 强者思维形成 | 认知重构 | 资源捕获 | 进化路径 )
  • LangChain构建大模型应用之RAG
  • 使用ROS实现多机通讯
  • 线上查询车辆出险记录:快速掌握事故情况!
  • 大模型API密钥的环境变量配置(大模型API KEY管理)(将密钥存储在环境变量)(python-dotenv)(密钥管理)
  • 数据结构(七)---链式栈
  • AI看论文自动生成代码库:Paper2Code如何革新科研复现?
  • 函数式链表:Python编程的非常规 “链” 接
  • QT6 源(53)篇三:存储 c 语言字符串的类 QByteArray 的使用举例,
  • 移除生产环境所有console.log
  • 给视频自动打字幕:从Humanoid-X、UH-1到首个人形VLA Humanoid-VLA:迈向整合第一人称视角的通用人形控制
  • 基于STM32、HAL库的AD7616BSTZ模数转换器ADC驱动程序设计
  • Linux操作系统学习---进程地址空间
  • 【LaTex】8.1 文档类与层级