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

不';ANSI C是否允许在固定时间段后在同一位置打印每个字符?,c,c89,C,C89,我正在尝试生成随机数,以便在控制台上打印。我在Linux上用C语言编程。我想在每个数字间隔一秒钟后,在一个地方打印所有数字。 我正在使用sleep()停止“时间间隔”。我试过\b,\r,但都没用。 我只是想让它运行,例如: (i=0;i

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

(i=0;i<10;i++)的
{
printf(“%d”,i);
睡眠(1);
printf(“\b”);
}

最简单的答案可能是:

#包括
int main()
{   
int i;
initscr();/*开始诅咒模式*/

对于(i=0;istdout可能是缓冲的,所以刷新它

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

for(i=0;i)你说的“没有工作”是什么意思?欢迎来到Stack Overflow。请花一些时间学习这里的礼仪。请仔细阅读常见问题解答,然后返回到以前的问题。请接受最能解决您问题的答案,并投票选出其他有用且信息丰富的答案。我不知道\b escape在Linux终端控制台上不起作用。是吗是吗?我会在这里使用\r,如果这不起作用,那么您的终端设置会被混淆。肯定不是ANSI C…是的。这是有指导意义的,所以OP应该理解为什么这很重要。但是使用诅咒。真的。这是正确的答案。除非您想要全屏程序,否则不要使用诅咒。诅咒不适用于简单的进度条在程序中,它们希望主输出成为主终端滚动的一部分。这很有帮助,而且它的工作方式符合我的要求。但是每次我运行程序时,标准输出是如何得到缓冲的呢?
#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;
}
for(i=0;i<10;i++)
 {
   printf("%d",i);
   fflush(stdout);
   sleep(1);
   printf("\b");
 }