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

网站建设与推广员岗位职责关键词查找

网站建设与推广员岗位职责,关键词查找,优化快速排序,seo资源网站 排名1.缓冲区 #include <stdio.h> int main() {printf("hello bite!");sleep(2);return 0; }执行此代码后&#xff0c;会 先停顿两秒&#xff0c;再打印出hello bite&#xff0c;但是明明打印在sleep前面&#xff0c;为什么会后打印呢&#xff1f; 因为&#xff…

1.缓冲区

#include <stdio.h>
int main()
{printf("hello bite!");sleep(2);return 0;
}

执行此代码后,会 先停顿两秒,再打印出hello bite,但是明明打印在sleep前面,为什么会后打印呢?

因为:

  • 在printf执行完了后,打印的内容被存到了缓冲区
  • 程序快结束时缓存区的内容再打印到显示器

奇妙的事情发生了:

#include <stdio.h>
int main()
{printf("hello bite!\n");sleep(3);return 0;
}

如果我们使用这样的代码,会 先打印出hello bite,再停顿两秒,为啥捏?

可以发现和上面的代码对比多了一个/n

  • 显示器有一种刷新策略,叫 行刷新
  • /n正好代表着换行,所以加了/n的内容会 直接从缓存区打印到显示器上不用等程序结束

那么我们有没有办法 不用\n也能先打印呢?
包有的:

#include <stdio.h>
int main()
{printf("hello bite!");fflush(stdout);sleep(3);return 0;
}
  • 这里的fflush(stdout)就起到了 刷新的作用

2.进度条(V1)

1.process.h

在这里插入图片描述

2.main.c

在这里插入图片描述

3.process.c(重点)

在这里插入图片描述

#include"process.h"2 #include<string.h>3 #include<unistd.h>4 5 #define size 101//需要考虑\0所以不是1006 #define style '#'7 8 void process()9 {10   int rate =0;11   char num[size];12   memset(num,0,sizeof(num));//这里是让num全部置空
W> 13   char* lable="|/-\\";//这里是模拟进度条后的圈圈14   int length=strlen(lable);15   while(rate<=100)16   {17     printf("[%-100s][%d%%][%c]\r",num,rate,lable[rate%length]);//100s是指预留100个字符,主要是为让】不动,但这样会导致倒着打印,所以需要加-,      \r是指每次打印完了之后都恢复到原位置18     fflush(stdout);//这里因为没有\n所以需要fflush进行刷新19     num[rate]=style;20     ++rate;21     usleep(50000);//usleep和sleep不同,前者单位是微秒 50000微秒=0.5秒22   }23 24   printf("\n");25 }  

3.进度条(V2)

1.process.h

在这里插入图片描述

2.process.c(重点)

在这里插入图片描述

void flushprocess(const char*tips, double total,double current)29 {30   const char *lable="|/-\\";31   int len =strlen(lable);32   static int index=0;33   char num[size];34   memset(num,0,sizeof(num));//将num置空35 36   double rate=current*100.0/total;//计算下载进度37   int n=(int)rate;//用下载进度确定有多少个#                                                                                                  38 39   int i=0;40   for(;i<n;i++)41     num[i]=style;//填充#到num中42 43   printf("%s...[%-100s][%.1lf%%][%c]\r",tips,num,rate,lable[index++]);//进度保留一位小数44   fflush(stdout);//因为没有使用\n,却又想直接刷新,所以需要fflush,记得包头文件#include<unistd.h>45   index %=len;46   if(n>=100)printf("\n");47 }

3.main.c(重点)

在这里插入图片描述

#include"process.h"3 #include<unistd.h>4 #include<time.h>5 #include<stdlib.h>6 7 typedef void (*call)(const char*, double,double);//定义函数指针类型8 9  10 11 double speed[]={5.0,0.5,0.3,0.02,0.1,0.01};//模拟网速的波动   12                                                               13 void download(int total,call cb)                              14 {                                                             15   srand(time(NULL));//设置种子                                16   double current =0.0;                                        17   while(current<=total)                                       18   {                                                           19     cb("下载中 ",total,current);                              20     if(current>=total)break;                                  21     int random=rand()%6;//随机匹配网速                        22     usleep(5000);                                             23     current+=speed[random];//加上每次下载的进度               24     if(current>=total)current=total;//有可能总和超过total,这样就没法显示100%,所以需要改为total25   }                                                           26 }                                                             27                                                               28                                                               29                                                               30                                                               31 int main()                                                    32 {                                                             33    download(1024.0,flushprocess);//传递文件大小和函数地址                                                                                      34    printf("下载 1024.0MB 完成\n");                                 35    download(512.0,flushprocess);                                   36    printf("下载 512.0MB 完成\n");                                  37    download(256.0,flushprocess);                                   38    printf("下载 256.0MB 完成\n");                                  39    download(128.0,flushprocess);                                   40    printf("下载 128.0MB 完成\n");                                  41                                                                    42    return 0;                                                       43 }     

效果如下:
在这里插入图片描述

http://www.dtcms.com/a/459333.html

相关文章:

  • 网站优化用什么软件凡科网站登录入
  • 建站之星破解版广东网站建设报价官网
  • 建立一个购物网站服务式办公室网
  • 网站建设要什么python下载安装教程
  • 做网站很忙吗网站建设东莞老铁博客
  • seo网站建设优化什么意思me wordpress
  • numpy -- 算术函数 mod()、remainder() 使用方法
  • 金融网站建设案例婚礼设计方案网站
  • 怎样建设自己网站做视频网站需要什么软件
  • 安卓搭建网站免费企业网站创建
  • 南昌模板建站定制网站企业网页代码
  • 提升网站权重的策略html表单制作
  • 深入理解浮点数格式:FP32、BF16、FP16与FP8的技术对比
  • 免费品牌网站制作王府井百货网上商城
  • 网站建设的岗位叫什么网页游戏排行榜2012
  • 海口自助建站软件青岛市黄岛区网站建设
  • 帝国网站怎么仿站企业oa管理软件
  • 响水网站制作公司有没有做海报的网站推荐
  • 云梦网络建站北京百度seo
  • 直播网站做收入流水公司网站建设公司
  • xcode 网站开发如何用eclipse做网站
  • 网站建设学院东莞商城网站建设
  • 浙江网站建设推广公司wordpress网站备份恢复
  • centos6.3 网站开发杭州手机网站建设
  • 微网站建设完不知道怎么推广咋办cms中文版网站模板
  • 每日羊题 (质数筛 + 数学 | 构造 + 位运算)
  • 上饶网站建设3ao cc专业a工商登记查询系统官网
  • 汉滨区建设局网网站实用网站推荐
  • 学校建设网站重要性网站建设网
  • 网站开发和编程的联系模板网站 建设教材