2

我正在尝试生成要在控制台上打印的随机数。我在 Linux 上用 C 语言编程。我想在每个数字的一​​秒时间间隔后在一个地方打印所有数字。
我正在使用sleep()停止“时间间隔”。我试过了\b\r但没有任何效果。
我只是想让它运行,例如

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

2 回答 2

6

stdout 可能已缓冲,因此请刷新它。

for(i=0;i<10;i++)
 {
   printf("%d",i);
   fflush(stdout);
   sleep(1);
   printf("\b");
 }
于 2011-02-20T11:52:27.357 回答
5

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

#include <ncurses.h>

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

于 2011-02-20T10:18:44.057 回答