ANSI C是否允许在固定时间段后在同一位置打印每个字符?

我正在尝试生成要在控制台上打印的随机数。 我在Linux上用C编程。 我希望在每个数字的一​​秒钟的时间间隔之后在一个地方打印所有数字。 我正在使用sleep()来停止’时间间隔’。我尝试了\ b,\ r \ n以及所有但都没有效果。 我只想让它运行,

for(i=0;i<10;i++) { printf("%d",i); sleep(1); printf("\b"); } 

我很绝望,请帮忙!

stdout可能是缓冲的,所以请冲洗它。

 for(i=0;i<10;i++) { printf("%d",i); fflush(stdout); sleep(1); printf("\b"); } 

最简单的答案可能是使用ncurses :

 #include  int main() { int i; initscr(); /* Start curses mode */ for (i=0;i<10;i++) { mvprintw(0,0, "%d", i); /* coords 0,0 */ refresh(); /* Update screen */ sleep(1); } getch(); /* Wait for user input */ endwin(); /* End curses mode */ return 0; } 

gcc -o counter counter.c -lncurses编译。