x秒后使文本消失[C]

时间:2015-12-15 15:02:16

标签: c time

我有一些关于“刽子手”游戏的作业,最初我需要在控制台上显示规则仅5秒钟,之后它必须消失并且游戏将开始。我怎样才能在C中实现这个目标?

例如:

  

“你只能尝试5次”

5秒后,这应该消失,游戏将开始。

我正在使用DEV-C控制台并研究了time.h库,但我最关注的部分是如何使文本消失。

1 个答案:

答案 0 :(得分:3)

如果您在5秒钟内不需要做任何事情,可以使用sleep执行此类操作:

int main()
{
    printf("You can only try 5 times");
    sleep(5);

    // Start game

    return 0;
}

对于您在评论中提到的消失文本,您可以使用回车\r

printf("\rI will overwrite the previous text!");

但这只适用于使用比已经打印的字符串更长的字符串覆盖的情况。你可以先打印一个空行来“擦除”它以解决这个问题。

最后,由于大多数输出​​流都是缓冲的,因此如果没有换行\n字符,您的文字可能无法打印,要解决此问题,您可以使用fflush(stdout),这样您的最终实现可能会像这样:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("\rYou can only try 5 times");
    fflush(stdout);
    sleep(5);

    printf("\r                          ");
    fflush(stdout);
    printf("\rThe game will now begin.");
    fflush(stdout);

    return 0;
}