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

如何建设公司网站信息赣州景文网络科技有限公司

如何建设公司网站信息,赣州景文网络科技有限公司,w3school网站建设教程,3d建模怎么做#x1f57a;作者#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 #x1f618;欢迎关注#xff1a;#x1f44d;点赞#x1f64c;收藏✍️留言 #x1f3c7;码字不易#xff0c;你的#x1f44d;点赞#x1f64c;收藏❤️关注对我真的… 作者 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 欢迎关注点赞收藏✍️留言 码字不易你的点赞收藏❤️关注对我真的很重要有问题可在评论区提出感谢阅读 前言 前面几章我们讲述了Linux指令、权限管理、编辑器、编译器、软件包管理器、自动化管理工具也写了简单的”Hello World“程序但是没有实现过复杂一点的程序光说不练假把式今天就带大家来做一个小项目–进度条。 搭建框架 在写代码之前我们先把文件先建好。 vim main.c vim process.c vim process.h vim makefile书写代码 在写代码要先讲一个知识点。 1.回车换行 在我们日常使用回车键时是否注意到当我们按下回车键也就是\n光标就会换到第二行的开始其实这里面有两个动作换行和把光标设置到行开始在C语言中可用\r来把光标换到开始位置 我们来借此写个小demo倒计时 void download() {int cnt10;while(cnt!0){printf(%-2d\r,cnt);fflush(stdout);cnt--;sleep(1);}printf(\n); }效果如下 第一版 我们最终要实现这个效果 我们前面讲了\r可以把光标移到行始所以在我们输出缓存字符的时候每一次都移到一开始的位置随着缓存字符的增多来实现进度条的效果。 代码如下 process.c #includeprocess.h const char *lable|/-\\;//通过循环实现一个转动的效果 char bar[NUM]; void download(int speed) { char bar[NUM];//使用数组来存储”缓存字符“ memset(bar,\0,sizeof(bar));//初始化 int len strlen(lable); int cnt0; while(cntTOP)//设置终止条件 { printf([%-100s][%d%%][%c]\r, bar, cnt, lable[cnt%len]);//%-100s预留100个空间左对齐//%%输出%也可以使用\%//\r把光标移到开始位置 fflush(stdout);//清空缓存区 bar[cnt]BODY;//将cnt所在位置设置为”BODY if(cnt100)bar[cnt]RIGHT;//设置 usleep(speed);//控制进度条的速度单位是微秒 } printf(\n); } main.c #include process.hint main() {download(100000);return 0; } process.h #pragma once #includestdio.h #include unistd.h #includestring.h#define NUM 102 #define TOP 100 #define BODY #define RIGHT extern void download(int speed); makefile process:process.c main.c gcc -o $ $^ .PHONY:clean clean: rm -f process 通过注释应该可以清楚明白代码的实现原理但是进度条该怎么用呢这是一个问题下面我们来模拟一下使用场景只需要再修改一下代码即可。 第二版 参考代码注释理解 main.c #include processBar.htypedef void (*callback_t)(int); // 函数指针类型// 模拟一种安装或者下载 void downLoad(callback_t cb) {int total 1000; // 1000MBint curr 0; // 0MBwhile(curr total){// 模拟进行着某种下载的任务, 我usleep(50000); // 模拟下载花费的时间int rate curr*100/total; // 更新进度cb(rate); // 通过回调展示进度curr 10; // 循环下载了一部分}printf(\n); }int main() {printf(donwnload 1: \n);downLoad(processbar);initbar();printf(donwnload 2: \n);downLoad(processbar);initbar();printf(donwnload 3: \n);downLoad(processbar);initbar();printf(donwnload 4: \n);downLoad(processbar);initbar();return 0; }processBar.h #pragma once#include stdio.h #include unistd.h #include string.h #include unistd.h#define NUM 102 #define TOP 100 #define BODY #define RIGHT extern void processbar(int rate); extern void initbar();processBar.c #include processBar.hconst char *lable|/-\\; char bar[NUM];// 是如何被调用的 void processbar(int rate) {if(rate 0 || rate 100) return;int len strlen(lable);printf([%-100s][%d%%][%c]\r, bar, rate, lable[rate%len]); // 没有\n,就没有立即刷新因为显示器模式是行刷新fflush(stdout);bar[rate] BODY;if(rate 100) bar[rate] RIGHT; }void initbar() {memset(bar, \0, sizeof(bar)); }makefile processbar:processBar.c main.cgcc -o $ $^ .PHONY:clean clean:rm -f processbar效果是一样的看到这里我相信你对实现一个进度条已经非常了解了但是有没有觉得它有点不好看那么我们再来优化一下。 第三版 怎么修改这里要了解一下怎么让编译器输出颜色可参考这篇文章 http://t.csdn.cn/O2T8F 只需修改processBar.c文件即可 如下 #include processBar.hconst char *lable|/-\\; char bar[NUM];// 是如何被调用的 void processbar(int rate) {if(rate 0 || rate 100) return;int len strlen(lable);printf(\033[38;2;128;0;128m\033[48;2;255;255;255m[%-100s][%d%%][%c]\033[m\r, bar, rate, lable[rate % len]);fflush(stdout);bar[rate] BODY;if(rate 100) bar[rate] RIGHT; }void initbar() {memset(bar, \0, sizeof(bar)); }效果如下 后记 本篇我们讲述了如何在Linux上实现一个进度条并对其进行了美化但是我们的目的是通过做项目来把之前所学的相关知识串起来我并没有对它进行过多的讲解因为它本身并不难难的是你在linux系统上编程的过程但它也是最重要的
http://www.dnsts.com.cn/news/8534.html

相关文章:

  • 网站建设代码流程乐山网站建设
  • 做网站的外包能学到什么国外的素材网站
  • 网站什么时候备案成都小程序开发一个多少钱啊
  • 瓯北网站制作系统论建设工程施工合同
  • 重庆南岸营销型网站建设公司哪家专业做网站点击率赚钱
  • h5模版网站天津网站建设培训学校
  • 上海网站建设百家号贸易公司 网站 扶持
  • 网站模板文件下载网站建设是不是都需要交费
  • 网站建设和管理是教什么科目wordpress 开发版 视频教程
  • 网站域名实名认证网站设计怎么边加载变查看
  • 做非法集资资讯的网站网站建设的网站定位
  • 北京中高端网站建设公司怎样做电商
  • 不用网站怎么做落地页深圳永久免费网站建设哪个好
  • 河南建设网站官网店铺装修设计公司
  • 有服务器如何做网站wordpress主题c7v5 v2.0
  • 山东网站建设软件网页设计与网站建设书
  • 直播视频网站开发勒流网站建设
  • 招标网站开发wordpress有没有翻书的主题
  • 网站建设人员春招计划pageadmin模板制作教程
  • 如何查询网站所有人深圳网站优化咨询
  • seo关键词优化软件官网邵阳seo
  • 网站建设实训意见网站维护北京
  • 做网站内容需要自己填的虚拟主机安装宝塔面板
  • 现在什么视频网站做的最好seo竞价推广
  • 无忧网站潍坊免费做网站
  • 网站建设贵阳免费的会员卡管理软件
  • wordpress多本小说站出售哪个网站做图书广告好
  • 门户网站的建设成果重庆哪家网站
  • 蚂蜂窝网站源码织梦医疗网站
  • crm系统网站开发直播app多少钱