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

网站建设怎么找客户资源山东济南做网站公司

网站建设怎么找客户资源,山东济南做网站公司,做美食视频网站,高清图片#x1f525;博客主页#xff1a;小王又困了 #x1f4da;系列专栏#xff1a;Linux #x1f31f;人之为学#xff0c;不日近则日退 ❤️感谢大家点赞#x1f44d;收藏⭐评论✍️ 目录 一、预备知识 #x1f4d2;1.1缓冲区 #x1f4d2;1.2回车和换行 二、倒计… 博客主页小王又困了 系列专栏Linux 人之为学不日近则日退 ❤️感谢大家点赞收藏⭐评论✍️ 目录 一、预备知识 1.1缓冲区 1.2回车和换行 二、倒计时 2.1源代码 2.2注意事项 三、进度条 3.1源代码 3.2实际应用 一、预备知识 1.1缓冲区 我们先观察两段代码的现象 #include stdio.h #include unistd.h int main() {printf(Hello Linux!\n); sleep(3);return 0; }这段代码先执行printf函数在屏幕上打印出Hellow Linux然后执行sleep函数让函数休眠3秒最后程序结束。 #include stdio.h #include unistd.h int main() {printf(Hello Linux!); sleep(3);return 0; }  通过上图我们可以看到当我们去掉 ‘\n’ 对代码进行编译程序先休眠了3秒然后在屏幕上打印Hellow Linux。由于去掉了‘\n’ 也没有换行。 现象分析 看到上面的现象大家一定会有很大的疑惑。难道程序是先执行了sleep函数然后再去执行printf函数。这样的猜想是错误的任何一个C语言程序没有遇到选择和循环语句都要严格按照顺序结构去执行代码都是从上到下依次执行。所以一定是先执行printf函数再执行sleep函数。那在休眠的3秒里Hellow Linux去了哪里呢代码被保存在了缓冲区中默认当程序结束的时候才会将缓冲区中的内容刷新出来带 \n 就是要求把缓冲区的的数据立即刷新到显示器上。 缓冲区是一种用于临时存储数据的区域通常用于临时保存数据以平衡数据处理速度不匹配的情况。  1.2回车和换行 回车和换行是两个与文本文件和文本编辑有关的控制字符它们在不同的操作系统和编程环境中可能有不同的表现。 回车将光标移动到当前行的开始最左侧 表示为ASCII字符 \r 。在打字机时代回车的原意是将打印头移动到行首以便在同一行上写入新的文本。在计算机中回车通常表示将光标移动到当前行的开头但不换行到新的一行。 换行将光标水平方向保持不变竖直方向向下平移一行。 表示为ASCII字符 \n在打字机时代换行的原意是将纸向上移动一行以便在新的行上写入文本。在计算机中换行通常表示将光标移动到下一行的开头。 二、倒计时 2.1源代码 学习了上面的知识我们可以写一个倒计时的小程序。 源代码 #include stdio.h #include unistd.hint main() {int cnt9;while(cnt0){printf(%d\r,cnt);sleep(1);cnt--;}printf(\n);return 0; }效果演示 如上图运行我们的程序却没有想要的倒计时效果这是因为我们没有刷新缓冲区执行的结果都存放在缓冲区 。我们要使用fflush接口来刷新缓存区。 刷新缓冲区 任何一个C程序运行的时候都会默认帮我们打开以下三个流 stdin —— 标准输入流键盘stdout —— 标准输出流显示器stderr —— 标准错误显示器 这三个流都是FILE*的指针所以任何一个C程序运行的时候操作系统会帮我们打开以上三个文件。我们只需要看stdout标准输出流使用fflush接口刷新。 源代码 #include stdio.h #include unistd.h int main() {int cnt 9;while(cnt 0){printf(%-2d\r,cnt);fflush(stdout);sleep(1);cnt--;} printf(\n); return 0; }效果演示 2.2注意事项 格式化控制 我们需要知道往显示器上打印整型10本质上是打印了字符1和字符0。因此打印10会占用两个字符而打印0~9只需要一个字符所以 \r 回车之后只会覆盖一个字符对第二个字符0始终没有影响因此我们需要用%-2d来控制每次打印两个位宽的字符 - 表示将这两个字符左对齐。如果不进行格式化控制打印出来的结果将是下面这样 三、进度条 3.1源代码 我们实现的进度条进度条除了有进度的推进还要有百分比提示和转动提示。 processBar.h #pragma once #include stdio.h #include unistd.h #include string.h#define NUM 103 #define BODY #define HEAD void processbar(); processBar.c #include processbar.h//引用头文件 const char* lable |/-\\;//转动提示 void processbar() {char bar[NUM];int cnt0;memset(bar,\0,sizeof(bar));int lenstrlen(lable);bar[cnt]HEAD;while(cnt100){printf([%-100s][%d%%][%c]\r,bar,cnt,lable[cnt%len]);fflush(stdout);bar[cnt]BODY;if(cnt100){bar[cnt]HEAD; }usleep(100000);}printf(\n); }3.2实际应用 上面的代码只是演示进度条的原理但是在实际中进度条并不是这样用的。以下载东西为例作为一个进度条它本身并不知道下载了多少它只会提供一个接口在下载东西的时候调用这个接口然后将已经下载好的比率作为参数传给进度条模块它会根据比率打印出对应的进度条样式。 processBar.h #pragma once #include stdio.h #include unistd.h #include string.h #include time.h #include stdlib.h#define NUM 103 #define BODY #define HEAD typedef void (*callback_t)(double);void process_flush(double rate); processBar.c #include processbar.h//引用头文件 const char* lable |/-\\;//转动提示char buffer[NUM] {0}; void process_flush(double rate) {static int cnt 0;int n strlen(lable);if(rate 1.0) buffer[0] Head;printf([\033[4;32;44m%-100s\033[0m][%.1f%%][%c]\r, buffer, rate, lable[cnt%n]);fflush(stdout);buffer[(int)rate] Body;if((int)rate1 100) buffer[(int)(rate1)] Head;if(rate100.0) printf(\n);cnt;cnt%n; } main.c void download(callback_t cb) // 回调函数的形式 {srand(time(NULL)^1023);int total FILESIZE;while(total){usleep(10000); //下载动作int one rand()%(1024*1024*10);total - one;if(total 0) total 0;// 当前的进度是多少int download FILESIZE - total;double rate (download*1.0/(FILESIZE))*100.0; // 0 23.4 35.6, 56.6cb(rate);//process_flush(rate);//printf(download: %f\n, rate); // rate出来了应该让进度条刷新} }int main() {download(process_flush);return 0; } 结语  本次的内容到这里就结束啦。希望大家阅读完可以有所收获同时也感谢各位读者三连支持。文章有问题可以在评论区留言博主一定认真认真修改以后写出更好的文章。你们的支持就是博主最大的动力。
http://www.huolong8.cn/news/12525/

相关文章:

  • 马尔康网站建设上海网站开发制作公司
  • 下陆区建设局网站西安未央区今天出啥事了
  • 响应式环保网站模板中国香烟网上商城
  • 百度网站管理网站建设建站网易互客
  • 旅游网站开发方案pptWordPress抓取豆瓣
  • 门户网站建设多久建立企业网站的目的和意义
  • 网站域名如何从代理商那里转出来西安哪家公司做网站
  • 梵讯企业网站建设中国进口贸易网官网
  • 常州专业网站建设公司哪家好开发app成本
  • 网站怎么做流量统计肥城网站建设推广
  • 外贸免费开发网站模板乌苏市电力建设工程公司网站
  • 为朋友做的网站舆情处置的五个步骤
  • 网站与网页的关系wordpress非凡主题里导航下拉菜单
  • 做网站免费送域名网站cn域名注册
  • 网站建设必备的功能模块寮步镇仿做网站
  • 丽水市莲都区建设局网站ae模板
  • 路由下做网站映射Wordpress 相同tag
  • iis .net 网站架设做网站反链
  • 做自媒体需要用的网站济宁教育平台网站建设
  • 自己可以建设网站卖东西吗西安网站建设推广公司哪家好
  • 个人备案能做企业网站吗wordpress怎么不调用文字内容
  • 新乡网站建设哪家好wordpress群晖
  • 网站开发json解析wordpress媒体库默认路径
  • 网站怎么做弹幕播放器结合七牛云 做视频网站
  • 做报名表的网站互联网公司简介ppt范本
  • 有哪些购物的网站网页设计素材网站推荐
  • 国外网站国内做好还是国外做app开发公司部门
  • 网站建设合同 模板网架公司需要给设计院提交的资料
  • 整形网站开发嘉兴信息网站
  • 做个企业网站 优帮云江苏建设官方网站