首先重申一下几个概念
1、回车与换行:回车与换行是不同的概念,但很多人都不太清楚二者之间有何区别。
回车是回到当前行的行首,而不会换到下一行,如果接着输入的话,之前的内容会被冲掉,从头开始写入,表示为\r。
换行顾名思义是换到换到下一行,但不会回到行首。
一般enter键代表了回车和换行。
2、进度条的原理:左右中括号保持不动,用一个while循环配合printf函数,利用回车使光标每次置于行首并冲掉以前打印出的"#",且每次输出的"#"的个数都是上次多一个,就
造成"#"增加的错觉。具体代码如图所示:
当然要完成这个程序还需要注意一些细节:
1、"\"是转义字符,所以如果想要输出"\",就要写"\\"才可以达到想要的效果;
2、"%-100s"中的"-100"是格式控制,表示这个字符串域宽为100,并且左对齐;
3、usleep()函数是睡眠函数,单位为微秒;sleep()单位为秒;
4、fflush(stdout)将缓冲区的数据输入到标准输出设备(屏幕);
5、用"|/-\"四个符号的交替来表示进度条在动。
以下为某一时刻程序运行结果: