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

学网络推广培训南宁网站seo排名优化

学网络推广培训,南宁网站seo排名优化,学习html的网站,英文版政府网站建设规范缓冲区 ​ 在写进度条程序之前我们需要介绍一下缓冲区,缓冲区有两种,输入和输出缓冲区,这里主要介绍输出缓冲区。在我们用C语言写代码时,输出一些信息,实际上是先输出到输出缓冲区里,然后才输出到我们的显…

缓冲区

​ 在写进度条程序之前我们需要介绍一下缓冲区,缓冲区有两种,输入和输出缓冲区,这里主要介绍输出缓冲区。在我们用C语言写代码时,输出一些信息,实际上是先输出到输出缓冲区里,然后才输出到我们的显示器上。
原因是:

如果输出一个字符就打印到显示器上,那么就会有大量的IO交流在显示器上,外设的速度比较慢,这会降低系统效率,所以就有缓冲区减少IO次数,等我们手动或者达到一定条件(进程结束)时缓冲区刷新就会打印信息到显示器上

看下面两段代码:

  1 #include<stdio.h>2 #include<unistd.h>3 4 int main()5 {6   printf("123");      7   sleep(2);8   return 0;9 }

这段代码先等待2秒然后才输出123,因为printf先输出123到缓冲区中,等2秒后程序结束刷新缓冲区就把信息打印到显示器上

  1 #include<stdio.h>2 #include<unistd.h>3 4 int main()5 {6   printf("123\n");    7   sleep(2);8   return 0;9 }

这段代码是先打印123,然后等2秒程序结束,\n能手动刷新缓冲区,所以是先打印123然后等2秒程序结束


\n&&\r

\r是回车,就是光标回到当前行第一位,\n是换行,就是光标移动到当前位置下一行。我们键盘上的Enter是换行加回车一起进行的。

进度条的实现

​ 实现进度条之前我们先写好我们的makefile文件:

myexe:test.c process.c                                                                                    @gcc -o $@ $^    
.PHONY:clean    
clean:    @rm -f myexe    

version1

v1版本就是一个普通进度条,只有样式

process.h

  1 #pragma once             2 #include<stdio.h>3 #include<unistd.h>4 #include<string.h>5 6 void process(); //声明函数

process.c

  1 #include"process.h"                2 3 #define SIZE 1004 #define SLEEPTIME 1000*505 #define STYLE '#'6 7 char str[SIZE+1]={0};8 char wait[]={"|/-"};9 10 void process()11 {12   int rate = 0, wsize = strlen(wait);13   while(rate <= SIZE)14   {15     printf("[%-100s][%d%%][%c]\r",str,rate,wait[rate%wsize]); //输出格式16     fflush(stdout); //刷新缓冲区17     usleep(SLEEPTIME); //等待18     str[rate++] = STYLE; //增加'#'19   }20   printf("\n");21 }

test.c

  1 #include"process.h"2 3 int main()4 {5   process(); //调用函数              6   return 0;7 }

image-20231105163644079


version2

v2版本的进度条根据实际情况进行变化的,符合实际

process.h

#pragma once    
#include<stdio.h>    
#include<unistd.h>    
#include<string.h>    typedef void (*callback_t)(int); //重定义函数指针                                      void process_v2(int rate);    

process.c

#include"process.h"    #define SIZE 100    
#define STYLE '#'    char str[SIZE+1]={0};    
char wait[]={"|/-\\"};  
int cnt = 0;void process_v2(int rate)    
{    cnt++; //当进度卡住时,指示标还会一直转动,表示正在下载int size = strlen(str);    while(size < rate) //判断当前进度条的符号数量是否符合传进来的进度   str[size++] = STYLE;    if(rate >= 0 && rate <= SIZE)    //判断rate合法性{    int wsize = strlen(wait);    printf("[%-100s][%d%%][%c]\r",str,rate,wait[cnt%wsize]);    fflush(stdout);    }                                                                                                       
}  

test.c

#include"process.h"    #define TARGET 1024*1024    
#define DOWNLOAD 5000void download(callback_t cb)    
{    int cur = 0;    while(1)    {    cur += DOWNLOAD; //下载ing   int rate = (cur*100)/(TARGET); //计算当前进度   if(rate > 100)  //判断rate是否合法rate = 100;    cb(rate);  //回调函数 if(rate >= 100) //如果进度已经打到100就退出   break;    usleep(10000); //模拟下载等待时间    }    printf("\n");    
}    int main()    
{    download(process_v2);    return 0;    
}    

image-20231105214019715


version3

v3版本是外观美化

可以对格式进行更改,加点文字描述,以及更改颜色和底色,详情百度,这里就不再赘述

http://www.hkea.cn/news/68681/

相关文章:

  • 做化验的在哪个网站里投简历河南网站关键词优化
  • 百度网址大全网站大全网络整合营销方案ppt
  • 海阳市建设工程交易中心网站品牌推广的作用
  • 江西省住房和城乡建设网站成都网站优化seo
  • java资源网站云优化
  • 小程序源码大全网络seo关键词优化技巧
  • 服务佳的小企业网站建设ip子域名大全
  • 网页与制作唐山seo推广公司
  • 自己做的网站怎么弄到网上在线网页制作
  • 电商网站 设计方案百度的排名规则详解
  • 福建省建设厅网站余外链链接平台
  • 广告营销网站市场推广方案
  • 徐州企业做网站软文是什么文章
  • 网站代码备份如何优化seo
  • 百度网站公司信息推广怎么做天津做网站的网络公司
  • wordpress在线pdfseo百度站长工具查询
  • 太仓网站建设有限公司网站设计公司怎么样
  • 网站去哪做在线crm软件
  • 做360手机网站快速汕头seo排名收费
  • 网站建设总做总结宜兴百度推广公司
  • 做毕业网站的周记外贸建站优化
  • 南昌市住房和城乡建设局网站百度官网推广平台电话
  • 真人做视频网站百度怎么发布广告
  • 网站页面优化包括怎么给网站做优化
  • 哪个网站用帝国cms做的软文素材网
  • 网站建设需要的资料深圳精准网络营销推广
  • 客户网站建设公司网站排名提升软件
  • 网站建设与维护试卷论文怎么在百度上做广告
  • 做博客网站要什么技术百度网站网址是多少
  • 河北建设厅官方网站八大员考试站长工具查询