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

发布于 2024-10-18 14:48:08 字数 296 浏览 5 评论 0原文

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

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

I am trying to generate random numbers to be printed on the console. I am programming in C on Linux. I wanted to print all the numbers at a single place after a time interval of a second for each number.
I am using sleep() for stopping a 'time interval'. I tried \b, \r and all but none works.
I just wanted this to run, for example:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

纵情客 2024-10-25 14:48:08

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

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

stdout is probably buffered, so flush it.

for(i=0;i<10;i++)
 {
   printf("%d",i);
   fflush(stdout);
   sleep(1);
   printf("\b");
 }
守护在此方 2024-10-25 14:48:08

最简单的答案可能是使用 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.c -lncurses

The easiest answer is probably to use 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;
}

Compile with gcc -o counter counter.c -lncurses.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文