【问题】在Linux下实现一个进度条程序,通过makefile进行编译。
首先,我们需要知道进度条是怎么实现的?进度条的动态效果是利用人眼的视觉暂留做到的。比如说:
先输出: “= ”表示1%
在下一次则显示:“== ”
再一次: “=== ”
由于刷新速度很快,给人的感觉就是在逐次递增,直到完成加载。
这个程序中有几个需要注意的点:
1、缓冲区与回车换行
在使用printf的时候:printf("hello\n")------->buffer-------->file
printf并不会直接将数据写入终端显示文件,而是将数据先写入到一块缓冲区中(标准输出缓冲区),目的是为了提高写入效率(将碎片化的数据集中写入文件,而不是每得到一点数据都进行写入操作),等到手动刷新缓冲区,或者缓冲区内容写满的时候,才会将数据写入文件;
printf中的 \n 具有刷新缓冲区(将数据写入文件)的作用,当然主要作用还是换行,将输出起始位置移动到下行行首。
printf中的 \r 是回车作用,将输出起始位置移动到本行行首。此处我们并不需要换行。
因为pr