此例是看了CS50网课后,有感而发实现的,废话少说,上代码:
#include <stdio.h>
#include <unistd.h>
int main()
{
for (int i = 0; i <= 100; i++)
{
printf("\rprogress bar: %d%% ", i); // \r的神奇作用:下次打印仍从行首开始
sleep(1); // 引自头文件<unistd.h>
fflush(stdout); //清空输出缓冲区
}
printf("\n");
return 0;
}
效果
关于 \r
\r 称作回车符(但并不换行,即光标回到行首),\n 是new line,是真正的换行符;突然想到一件事:
windows下新建文本文件中换行符为 \r\n ;而linux下则为 \n
关于 sleep( )
原型:
#include <unistd.h>
unsigned int sleep(unsigned int seconds);
可见参数单位为 秒;
延伸:usleep( )
#include <unistd.h>
int usleep(useconds_t usec);
参数单位为 微秒 ( 1 0 − 6 10^{-6} 10−6 S);