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
编译。