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

免费网站制作教程南昌seo网站排名

免费网站制作教程,南昌seo网站排名,公众平台申请,多语言网站建设价格目录 1.换行、回车概念 2.缓冲区 2.1缓冲区 2.2强制刷新 3.进度条程序 Makefile文件 ProgressBar.h ProgressBar.c Main.c 执行结果 1.换行、回车概念 /n:换行回车(\r:回车) 2.缓冲区 如下图在vim编辑器中的命令模式下…

目录

1.换行、回车概念

2.缓冲区

2.1缓冲区

2.2强制刷新

3.进度条程序

Makefile文件

ProgressBar.h

ProgressBar.c

Main.c

执行结果


1.换行、回车概念

/n:换行+回车(\r:回车)

2.缓冲区

如下图在vim编辑器中的命令模式下输入命令,在3号手册中查看sleep。

sleep是由Linux提供的接口,用于程序在执行时停下来休眠数秒。

如下图在命令行窗口中输入命令,在3号手册中查看usleep。

usleep是由Linux提供的接口,用于程序在执行时停下来休眠数微秒。

sleep与usleep的区别是sleep休眠时间单位是秒,usleep休眠时间单位是微秒。

1秒=1000毫秒=1000 000微秒=1000纳秒

2.1缓冲区

情况一、加上\n

运行结果:先打印字符串换行休眠三秒再打印命令行提示符

情况二、不加\n

运行结果:休眠三秒然后打印出字符串和命令行提示符

出现以上两种不同的情况是因为printf()函数不是直接向显示器文件写入,而是先向缓冲区中写入。

  1. 由键盘输入字符也是会立即显示到屏幕上的。
  2. 之前printf函数是向磁盘中写入,然后再向显示器中写入,现如今为了提高效率,向内存中写入而不是向磁盘中写入(由内存向内存拷贝数据要比由内存向磁盘拷贝数据要快);
  3. 由缓冲区向显示器中刷新,单次刷新量越大刷新次数越少,效率越高,但一次刷新太多用户看不过来,对于我们人来说习惯于按行读。综合来说按行刷新是最合理的。

2.2强制刷新

C语言中fflush函数用来强制将数据刷新到显示器上。

每一个C语言程序在执行开始之前会默认打开如下3个流:

  1. FILE* stdin:是标准输入流,对应的设备是显示器;
  2. FILE* stdout:是标准输出流,对应的设备是键盘;
  3. FILE* stderr:是标准错误流,对应的设备是显示器。

为什么C语言在开始执行程序之前会打开这3个标准流呢?  

       因为程序对大多数用户来说是用来做计算的,用户由键盘输入,经过程序计算,再由显示器给用户显示出来,显示器和键盘被用户经常使用,那C语言设计者就想既然显示器和键盘被多次用,那在程序开始执行之前默认将其打开。

3.进度条程序

Makefile文件

ProgressBar.exe:Main.c ProgressBar.cgcc $^ -o $@ -std=c99
PHONY:clean
clean:rm -f ProgressBar.exe 

ProgressBar.h

#pragma once
#include <stdio.h> void ProBar1();    
void ProBar2(double fileSize, double current);    

ProgressBar.c

#include "ProgressBar.h"
#include <unistd.h>
#include <string.h>//void test()
//{
//  printf("hello\n");
//}#define STYLE '='
#define LENGTH 101//version 1
void ProBar1()
{char bar[LENGTH];memset(bar,'\0',LENGTH);char state[]={'|','/','-','\\'};int cnt=0;while(cnt<=100){printf("[%-100s][%3d%%][%c]\r",bar,cnt,state[cnt%4]);fflush(stdout);bar[cnt++] = STYLE;usleep(50000);}printf("\n");
} //version 2
void ProBar2(double fileSize, double current)
{                                                                                                                                                                                                            double rate = (current*100.0) / fileSize; int loopCount = (int)rate;char bar[loopCount+1];memset(bar,STYLE,loopCount);bar[loopCount] = '\0';char state[]={'|','/','-','\\'};printf("[%-100s][%.1lf%%][%c]\r",bar,rate,state[loopCount%4]);fflush(stdout);}

Main.c

#include "ProgressBar.h"
#include <unistd.h>
double bandwith = 1.2*1000000;void download(double fileSize)
{double current = 0.0;printf("download begin\n");while(current<=fileSize){ProBar2(fileSize,current);double old = current;current += bandwith;if(old<fileSize && current>fileSize){current = fileSize;}sleep(1);}printf("\n");printf("download end fileSize:%lf\n",fileSize);
}int main()
{
//  test();//  ProBar();
//  ProBar2(100,56.6);
//  printf("\n");
//  ProBar2(67,66);
//  printf("\n");                                                                                                                                                                                            
//  ProBar2(100,1.2);
//  printf("\n");double file = 100.2*1024*1024;download(file);return 0;
}

执行结果

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

相关文章:

  • 网站不在首页显示出来做网络推广
  • 上海网站seo公司网页推广平台
  • 网站服务器租用价格表百度怎么发布自己的广告
  • 经纪人做网站技巧搜索引擎入口yandex
  • 教育网站制作哪家服务好全球外贸采购网
  • 响应式网络网站源码百度关键词查询网站
  • 南京网站制作设计公司网络运营团队
  • 阿里巴巴上怎样做自己的网站seo网站优化网站编辑招聘
  • 网站做付费推广都需要问什么网络热词2022
  • 给男票做网站表白的软件产品市场推广计划书
  • 西安网站制作定制怎么制作自己的个人网站
  • wordpress 如何移动端盐城seo优化
  • asp.net 制作网站开发百度竞价排名软件
  • 百度爱采购推广平台天津网络推广seo
  • 福州市闽侯县建设局网站推广引流吸引人的文案
  • wordpress目录 读写权限泰安短视频seo
  • 东莞建设网站流程澎湃新闻
  • 萧县住房和城乡建设局网站seo排名推广工具
  • 企业网站php模板下载百度百科官网首页
  • 做愛視頻网站在线网页制作网站
  • 织梦pc怎么做手机网站搜索引擎优化的基础是什么
  • 课程建设网站设计源码爱站网反链查询
  • 安徽省建设业协会网站个人网页制作教程
  • 好的摄影网站推荐福州seo顾问
  • html做的好看的网站如何宣传推广产品
  • 微信手机网站制作怎么引流客源最好的方法
  • 宿州建设网站公司前端seo搜索引擎优化
  • 做王境泽表情的网站百度seo关键词优化排名
  • 怎么选择无锡网站建设虚拟主机搭建网站
  • 做原油期货关注什么网站搜索引擎优化是做什么