首先理解下转义字符 \r \n:
\r是回车,让光标回到行首,并覆盖本行之前的内容
\n是换行,光标换到下一行同位置处。
假设进度位100%,每增加1%,我们打印一个“#”,所以我们可以申请一个101字节的数组,使用左对齐,进度每增加一次,我们给数组中就添加一个#字符。
#include <stdio.h> #include <unistd.h> #include <string.h> void main() { int i=0; char proc[101]; memset(proc, 0, 101); while(i<=100){ printf("[%-100s] %d%% \r", proc, i); proc[i] = '#' ; fflush(stdout); usleep(20000); i++; } printf("\n"); }