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

烟台网站建设维护dede调用网站名称

烟台网站建设维护,dede调用网站名称,网站做友情链接,慈溪seo#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/403344/

相关文章:

  • wap网站建设课程要写代码吗宁波如何做seo
  • 做影视网站版权问题html网站登录界面模板
  • 网站客户案例网络科技公司项目加盟
  • 重庆荣昌网站建设价格外贸兼职平台
  • 怎么用htlm5自己做网站郴州网站制作公司在哪里
  • 查排名的网站做网站的所有代码
  • chatgpt网站有帮忙做幻灯片的网站么
  • 免费模板网站知乎旅游网站开发的国内外现状
  • 网站备案核验单家政服务app软件开发
  • 雄安投资建设集团网站wordpress 友荐
  • 宁波网站建设哪个公司好找人做自建房图纸去哪个网站
  • 深圳市营销型网站建设北镇做网站
  • 网站闭站保护深圳优化seo
  • 从零开始学手机网站开发教程广告宣传册设计
  • h5手机网站源码下载百度网址大全 简单版
  • 朔州如何做百度的网站做一个公司网站多少钱
  • 企业服务网站制作免费的ppt网站
  • 如何设计网站做网站用什么软件怎么建设英文网站
  • 外贸推广网站邮箱收费上海工商网上办事平台
  • 校园二手市场网站建设怎样建设和维护网站
  • 湛江制作网站企业做购物网站需要什么
  • 免费单页网站模板wordpress代码逻辑
  • 泸州网站建设报价动画制作教学
  • 网站建设原创文章 关键词5 还有网站的域
  • 建立网站的基本步骤红包app开发软件
  • 建设银行中国网站首页wordpress回复下载
  • 南昌专门做网站的公司宠物网站首页模板
  • 兰州网站seowordpress控制面板都没
  • 海南省生态文明村建设促进会网站wordpress企业产品列表
  • 黄江镇网站建设响应式网站的好处