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

对二次网站开发的认识怎样才能做好网络推广

对二次网站开发的认识,怎样才能做好网络推广,网站建设_,网站引导图文章目录 铺垫回车换行缓冲区概述强制冲刷缓冲区 简单实现倒计时功能进度条小程序版本一实例代码效果展示分析 版本二 铺垫 回车换行 回车和换行是两个独立的动作 回车是将光标移动到当前行的最开始#xff08;最左侧#xff09; 换行是竖直向下平移一行 在C语言中… 文章目录 铺垫回车换行缓冲区概述强制冲刷缓冲区 简单实现倒计时功能进度条小程序版本一实例代码效果展示分析 版本二 铺垫 回车换行 回车和换行是两个独立的动作 回车是将光标移动到当前行的最开始最左侧 换行是竖直向下平移一行 在C语言中\n是同时进行了回车换行\r实现了回车操作 缓冲区 概述 先来看一个小现象 实例代码 #includestdio.h #includeunistd.h int main() {printf(hello gwj,hello Linux...\n);sleep(3);return 0; } 运行mytest.exe执行程序会输出hello gwj,hello Linux...紧接着调用sleep函数休眠三秒 如果将printf函数中\n删掉会出现什么结果呢 现象先休眠三秒在最后结束的狮虎打印出内容 这这种场景中sleep函数和printf函数哪一个先运行的呢 答案是printf先运行在休眠的这三秒时间里printf已经执行完了字符串被保存在缓冲区 缓冲区的概念需要在操作系统层面上理解单纯在语言基础上是很难理解的 缓冲区是一个内存空间当休眠的时候字符串在缓冲区里当程序结束return 0时强制冲刷缓冲区再打印出字符串。 强制冲刷缓冲区 任何一个C语言程序都会默认打开三个流 stdin标准输入流stdout标准输出流stderr比爱准错错误 可以通过fflush函数来刷新缓冲区 示例代码 #includestdio.h#includeunistd.hint main(){printf(hello gwj,hello Linux...);fflush(stdout); sleep(3);return 0;} 现象 简单实现倒计时功能 示例代码 1 #includestdio.h2 #includeunistd.h3 int main()4 {5 int cnt9;6 while(cnt0)7 {8 printf(%d\r,cnt);9 fflush(stdout); 10 cnt--;11 sleep(1);12 }13 return 0;14 } 效果展示 代码解读 倒计时使用新数字去覆盖老数字并且都出一同一位置因此在printf函数里不能使用\n使用换行会让新数字在老数字下面。 正确做法是在printf函数后面使用\r回车符号每打印一个数字让光标回到这一行最开始的位置这样打印出来的新数字就会覆盖旧数字。 但是\r不会冲刷缓冲区因此每打印完一个数字调用 fflush(stdout)来冲刷缓冲区。 进度条小程序 版本一 实例代码 Processbar.h文件 #pragma once #includestdio.hvoid ProcBar(); #includeProcessbar.h #includestring.h #includeunistd.h #define Length 101 #define Style # const char *lable|/-\\; //version1: void ProcBar() { char bar[Length]; memset(bar,\0,sizeof(bar)); int lenstrlen(lable); int cnt0; while(cnt100) { printf([%-100s][%3d%%][%c]\r,bar,cnt,lable[cnt%len]); fflush(stdout); bar[cnt]Style; cnt; usleep(20000); } printf(\n); } 效果展示 分析 该进度条的原理是一次比一次多打印一点内容、 定义一个bar数组通过循环每次多打印一个字符视觉上就会形成进度条是从右向左走 由于进度条每次打印是在同一行上因此需要\r符号让光标回到最开始的位置 版本二 Processbar.h文件 #pragma once #include stdio.h typedef void(*callback_t)(double, double); void ProcBar(double total, double current); Main.c文件 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); return 0; } Processbar.c文件 #includeProcessbar.h #includestring.h #includeunistd.h #define Length 101 #define Style # //version 2 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; usleep(20000); } printf([%-100s][%.1lf%%][%c]\r, bar, rate, lable[cnt%len]); fflush(stdout); } 效果展示
http://www.hkea.cn/news/14437978/

相关文章:

  • 做哪类网站没有版权问题百度网盟推广案例
  • 网页设计与网站制作华为手机网站建设策划方案
  • 学做网站设计需要多少钱银川建设网站公司
  • 下载别人网站的asp槐荫区网络营销seo
  • 网站建设好弄吗百度app最新版本
  • app编程软件有哪些网址seo优化排名
  • idc网站模板淮南发布
  • 北京注册网站每天推荐新设计的网站
  • 做高档衣服的网站网站搭建工具视频
  • 做兼职做网站的是什么建站之星多语言
  • wordpress 名站高端网站开发 金蝶
  • 国内个人网站设计欣赏建立企业网站的形式有哪些
  • dede地方门户网站模板开封网站网站建设
  • 织梦手机网站模板删除中国企业招聘网
  • 东莞响应式网站建设定制头像设计
  • 网站建设好后怎样形成app网站开发技能介绍
  • .net 网站开发卓天商务怎么入驻
  • 成都网站游戏设计成都双语网站开发
  • 建网站 网站内容怎么做推广手段有哪些
  • 单页产品网站源码带后台长沙公司建设网站
  • 网站制作公司 云南建设网站申请书
  • 做文字云的网站北京建筑设计公司排行榜
  • 提供网站建设费用北京网站定制流程
  • 石家庄做网站裕华区响应式网站建设代理商
  • dedecms做电商网站免费全能网站空间
  • seo网站优化培训wordpress访问
  • 加强机关网站建设网站建设中的英文
  • 芜湖灵创网站建设莒县网页设计
  • 网站模板大全官网站长网站seo查询
  • 做网站的英文网站顶部导航文件代码在吗