我只想显示一个printf 5秒钟

我只想在命令中显示“ printf” 5秒钟,但我没有在线找到它。如果您花时间回答像我这样的徒弟,非常感谢! (CLION控制台)

int main()
{
srand(time(NULL));
int a=0;
int b=0;
int c=0;
int d=0;
int e=0;

int ar=0;
int br=0;
int cr=0;
int dr=0;
int er=0;

a=rand()%1000+1;
b=rand()%1000+1;
c=rand()%1000+1;
d=rand()%1000+1;
e=rand()%1000+1;

printf("La suite à rentenir est :\n%d %d %d %d %d\n",a,b,c,d,e); <---- The printf I only want to show during 5 seconds  


scanf("%d",&ar);
scanf("%d",&br);
scanf("%d",&cr);
scanf("%d",&dr);
scanf("%d",&er);

if (ar==a && br==b && cr==c && dr==d && er==e)
    printf("BRAVO");
        else
            printf("TU AS PERDU");

return 0;

}

zgfjwzwxb 回答:我只想显示一个printf 5秒钟

在“消息”下面的代码中先打印然后擦除

Task.Run

请注意,根据您将库用于#include<stdio.h> #include<stdlib.h> #include<unistd.h> int main() { printf("message"); fflush(stdout); sleep(5); printf("\r \r"); fflush(stdout); return 0; } 的系统的变化。在Windows上,我认为它是sleep而不是windows.h

使其起作用的关键部分是转义码unistd.h,该转义码将光标返回到行的开头。我在代码中放入了两次。首先,使空格覆盖消息。第二次,使光标留在行的开头,为下一件事情做好准备。

请注意,在C语言中,通常直到得到换行符\r时,printf才打印出来。在此程序中,我们通过使用\n来解决此问题,该强制将所有内容立即打印在屏幕上,而无需等待fflush(stdout)。当然,我们不希望在这里使用换行符,因为我们希望停留在同一行上,以便可以返回到该行的开头并用空白字符覆盖“消息”。

这是如何做的原则.....

将您的代码粘贴到问题中...

\n

这意味着要记住的数字系列(La suiteàrentenir)仅显示五秒钟。

@chux在注释中的一个很好的建议是对测量打印文本的长度进行改进,然后在该长度上打印空白。代码为printf("La suite à rentenir est :\n"); printf("%d %d %d %d %d",a,b,c,d,e); fflush(stdout); //<---- The printf I only want to show during 5 seconds sleep(5); printf("\r \r"); fflush(stdout); ,添加了上面的示例代码

int len = printf("message"); .... printf("\r%*s\r",len,"");

这种改进意味着无论消息长度多大,都将打印正确数量的空格以将其删除。

本文链接:https://www.f2er.com/3136846.html

大家都在问