1.前置知识说明
①回车换行
首先我们需要知道,回车与换行是两个概念,在C语言中使用"\n"时,默认使用的是回车+换行,举一个简单的例子,在以前写作文时,我们在某一行写到最后一个字时,我们会将字写在下一行,此时这个换行的动作就叫换行,但是如果只换行的话此时的笔尖应该落在下一行的最后一个格子上,此时我们再将笔尖移动到这一行的开始,这个动作就叫做回车。也就是说如果我们只使用回车("\r")的话,会将光标移动到本行的一开始,只使用换行的话,会将光标移动到下一行的相同位置。
②缓存区
首先,让我们来看下面这一段C语言的代码
我们将其编译运行后可以发现,它在运行后并没有立刻打印num,而是在等待两秒之后再出现结果,从结果上来看,看似是sleep先于打印函数printf执行,但是实际上C语言的执行顺序都是由上至下的,打印之后的结果被储存到了缓存区, 如果使用"\n"的话会进行一次强制刷新,即立刻显示缓存区中的内容,但是由于这里没有加上"\n",因此缓存区的内容一直持续到sleep指令结束才出现,那么我们有没有办法使缓存区强制刷新呢?当然是有的,我们只需要使用fflush函数即可。即
2.倒计时程序的实现
在知道了上面的两个知识之后,我们便可以来根据它们实现一个简单的倒计时程序
运行结果如下
3.进度条程序的实现
程序实现如下
程序运行结果如下