百度哪个网站做贸易,苏州网站地址,安康养老院费用,做网站哪家好 青岛目录 一、行缓冲区的概念
二、\r与\n
三、进度条代码书写与展示
1.如何表示进度条是在加载的
2.整体框架
3.书写
3.1makefile:
3.2process.h:
3.3process.c:
3.4main.c#xff1a;
3.5美化 一、行缓冲区的概念
首先#xff0c;我们来见一见行缓冲区#xff0c;…目录 一、行缓冲区的概念
二、\r与\n
三、进度条代码书写与展示
1.如何表示进度条是在加载的
2.整体框架
3.书写
3.1makefile:
3.2process.h:
3.3process.c:
3.4main.c
3.5美化 一、行缓冲区的概念
首先我们来见一见行缓冲区对比下面两个代码就可以理解了。 这个的结果毋庸置疑了就是 那么如果我们修改一下这个代码呢比如这样
结果又如何呢我们运行一下 我们惊奇的发现居然和原来完全不一样这个代码显示的是先休眠3秒再打印出hello world。
这也就说明了有行缓冲区的存在。
显示器对应的是行刷新即当缓冲区当中遇到\n或是缓冲区被写满才会被打印出来而在第二份带码当中并没有\n所以字符串hello world先被写到缓冲区当中去了然后休眠3秒后直到程序运行结束时才将hello world打印到显示器当中。
二、\r与\n \r回车让光标回到行首类似于之前的打字机 \n换行让光标来到下一行 而我们电脑键盘上面的enter键就是\r\n老式键盘的enter键的形状也说明了这一点 既然是是使光标回到本行行首那么如果我们向显示器上写了一个数之后再让光标回到本行行首然后再写一个数不就相当于将前面一个数字覆盖了吗? 但这里有一个问题:不使用\n’进行换行怎么将缓冲区当中数据打印出来? 这里我们可以使用fflush函数该函数可以刷新缓冲区即将缓冲区当中的数据刷新当显示器当中。基于这个特性我们可以编写一个倒计时的程序。 光标回到行首再打印就实现了倒计时的效果 三、进度条代码书写与展示
根据上面的基本知识我们就可以写一个进度条的代码了。
1.如何表示进度条是在加载的
有的时候们在下载东西的时候进度条可能会卡着不动但是确实是在运行我们该怎么表示呢
这里我梦可以设置一个标记在随机改变形状就可以知道是不是在运行了。
例如 const char *lable|/-\\; 在这几个符号之间切换。
2.整体框架
我们为了实现下载功能我们可以模拟实现一个下载的场景设置总的下载数据的值然后设置speed值用休眠时间模拟下载的速度。for()循环模拟正在下载数据。
3.书写
3.1makefile:
实现多文件编译 3.2process.h: 3.3process.c: 3.4main.c 效果展示 3.5美化
如果你觉得这样有点单调你也可以加上颜色关于ANSI颜色转义序列可以到网上找到。
改进后 效果展示