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

那个网站可以做logo东莞厂房招标平台

那个网站可以做logo,东莞厂房招标平台,制作公司网页图片,软件开发工程师证书图片文章目录 预备知识一、理解回车换行二、认识行缓冲1、代码一、二#xff08;回车换行理解#xff09;2、代码三、四#xff08;sleep函数和ffush函数理解#xff09; 三、简单倒计时1. 倒计时代码2、效果展示 四、进度条1、效果展示2、进度条代码makefileProcessBar.hProce… 文章目录 预备知识一、理解回车换行二、认识行缓冲1、代码一、二回车换行理解2、代码三、四sleep函数和ffush函数理解 三、简单倒计时1. 倒计时代码2、效果展示 四、进度条1、效果展示2、进度条代码makefileProcessBar.hProcessBar.cmain.c 3、实现过程分析4.3.1 进度条实现样式4.3.2 进度条实现方法 预备知识 一、理解回车换行 在我们熟悉的C语言中换行就可以跳转的下一行开头 但其实这一操作有两个步骤\r 回车和 \n换行也就是先回到开头再进行换行 \r 回车就是回到这一行开头 \n 换行就是另起一行 二、认识行缓冲 在内存中预留了一块空间用来缓冲输入或输出的数据这个保留的空间被称为缓冲区。下面我们通过几个代码来理解一下 1、代码一、二回车换行理解 代码一 #includestdio.hint main() {printf(hello world\n);return 0; } 代码二 那我将这个\n换成了\r再次打印会出现什么情况 #includestdio.hint main() {printf(hello world\r);return 0; }发现 \n 可以打印出来而 \r,不能打印出来因为显示器模式是行刷新缓冲区是按行缓冲的没有\n就不能立即刷新。 \r 回到行首后会进行覆盖写shell 提示符会覆盖掉之前写的 “hello world”如果我们在 “hello world” 不加 \r则不会进行覆盖写shell 提示符会顺着 “hello world” 往后写 如下 2、代码三、四sleep函数和ffush函数理解 行缓冲是缓冲区刷新策略的一种在行缓冲模式下当输入和输出中遇到 ‘\n’ 换行时就会刷新缓冲区下面我们认识头文件unistd.h的三个函数 sleepLinux 下的休眠函数单位是秒 usleep和sleep 一样单位ms即10-6 m) fflush 刷新缓冲区 代码 3 #includestdio.h #includeunistd.hint main() {printf(hello world);sleep(3);return 0; }我们写的这个C语言程序是从上到下依次执行的而我们看到的是先休眠后打印这是因为数据保存在缓冲区中没有主动刷新。当程序退出后保存在缓冲区中的数据被自动刷新出来了如果我们想提前刷新便可以调用fflush函数来刷新缓冲区 代码四 #include stdio.h #include unistd.h int main() {printf(hello world);fflush(stdout);printf(\n);sleep(3);return 0; }这次 “hello world” 被直接打印出来我们加 \n避免shell 提示符出现在 “hello world” 后面 三、简单倒计时 1. 倒计时代码 #include stdio.h #include unistd.h int main() {int cnt10;while(cnt0){printf(%-2d\r,cnt);fflush(stdout);sleep(1);cnt--; }printf(\n);return 0; }2、效果展示 具备了以上介绍的知识接下来我们就实现进度条了 四、进度条 1、效果展示 2、进度条代码 makefile processbar:ProcessBar.c main.cgcc -o $ $^ .PHONY:clean clean: rm -rf processbarProcessBar.h #pragma once #include string.h #include unistd.h #include stdio.h// 进度条箭头 #define TAIL // 进度条的数组大小 #define Length 102// 进度条加载的进度条 #define Style // 重定义函数指针 typedef void (*callback_t)(double, double);// 进度条的实现 void ProcBar(double total, double current);ProcessBar.c #include ProcessBar.h#define LIGHT_CYAN \033[1;36m // 亮青色 #define NONE \033[m //截断// 显示进度 const char* lable |/-\\;void ProcBar(double total, double current) {char bar[Length];// 初始化进度条memset(bar, \0, sizeof(bar));int len strlen(lable);int cnt 0;double rate (current * 100.0) / total;// 循环次数int loop_count (int)rate;while (cnt loop_count){bar[cnt] Style;if (rate 100)bar[loop_count] TAIL;}// 打印显示printf(LIGHT_CYAN[%-100s]NONE[%.2lf%%][%c]\r, bar, rate, lable[cnt % len]);// 刷新缓冲区fflush(stdout); } main.c #include ProcessBar.h// 网络带宽【1mb】 double bandwidth 1024 * 1024 * 1.0;void download(double filesize, callback_t cb) {// 累计下载的数据量double current 0.0;printf(download begin, current: %lf\n, current);while (current filesize){// 使用函数指针更新界面cb(filesize, current);//从网络中获取数据//......// 睡眠usleep(100000);// 累计下载current bandwidth;}printf(\ndownload done, filesize: %lf\n, filesize); }int main() {// 测试调用//download(100 * 1024 * 1024, ProcBar);download(2 * 1024 * 1024, ProcBar);//download(200*1024*1024,ProcBar);//download(400*1024*1024,ProcBar);download(50*1024*1024,ProcBar);download(10*1024*1024,ProcBar);// 测试//ProcBar(100.0, 56.9);//ProcBar(100.0, 1.0);//ProcBar(100.0, 99.9);//ProcBar(100.0, 100);return 0; }3、实现过程分析 4.3.1 进度条实现样式 进度条样式 进度条的主要内容是两个中括号包裹中间进度显示以的方式进行推进呈现 进度条百分比 显示当前进度百分比随着进度不断推进百分比也在增加 进度条旋转字符 显示加载样式可以利用一个旋转的字符例如 [] 的样式顺时针不断旋转依次为 “| / - \”注意 ** 也是转义字符因此需要两个 *\ * 进度条颜色 c语言颜色参考 我们可以根据自己的喜好给进度条上色在此我们找到颜色参照表 4.3.2 进度条实现方法 预留进度条大小为 100 个 外加 1 个 加上保存 \0 的位置定义一个102个单位的长度的bar数组。 如果将打印放在循环中的话在打印的时候会变得卡卡的我们可以将打印放到循环外面等数组放上后在一起打印这样更好 我们又实现了一个函数download()把ProcBar()作为参数传递给download()用usleep函数模拟下载时间然后循环起来回调processbar()函数便实现了进度条 最后考虑到第二次下载bar数组满了我们再每次调用download()函数时清空bar数组完成实现~~ 这就实现了我们最终的效果 最后本文就到这里结束了感谢大家的收看请多多指点~
http://www.pierceye.com/news/510363/

相关文章:

  • 小型网站的建设方案龙江人社app二维码图片
  • 西宁微网站建设wordpress更新文章post.php错误
  • 网络营销网站平台有哪些众希网站建设
  • 网站建设营销的技巧公司招聘网站排行榜
  • 长治网站建设收费多少农村自建房设计图 户型图
  • 广州网站建设 骏域网站建设做搜狗网站优化首页软
  • 广州网站设计软件简约大方网站
  • 网站建设与管理专业好吗做国际贸易如何建网站
  • 小说百度风云榜上海seo网络推广渠道
  • 建设局网站打不开是什么原因wordpress客户端插件
  • 农业 网站源码网站制作产品优化
  • 企业公司网站制作建设怎么区分营销型网站
  • 如何选择顺德网站建设网站开发源代码
  • 北京城乡建设部网站网站页面是自己做还是使用模板
  • 网新企业网站管理系统厦门好景科技做网站
  • 手机网站开发语言深圳网站建设培训
  • wordpress做的视听网站怎么用ftp清空网站
  • 网站建设能干什么网页设计代码模板人物介绍
  • 桂阳网站设计做p2p投资理财的网站
  • 做学术论文的网站从化专业做网站
  • 从化网站制作狮山公司网站建设
  • 网站开发验证码图片不显示php 自动做网站点击量
  • 大连网站开发费多少钱合肥企业网站建设工作室
  • 小企业网站建设的基础知识wap网站 开发
  • 地方门户网站赚钱吗沈阳黑酷做网站建设优化公司怎么样
  • 佛山市seo网站设计工具内部网站建设软件下载
  • 深圳网站建设高端设计网站建设 补充协议
  • 枣阳网站建设 枣阳山水数码自己建网站备案
  • 网站网站制作多少钱共享看世界新域名
  • 网站空间 阿里云wordpress多站点403