我正在用C编写一个代码,但是sleep函数并没有按我所希望的那样工作。

for(seq_n = 1; seq_n <= 3; seq_n++){
    printf("Sequence %d:\n", seq_n);
    for(val_n = 1; val_n <= 5; val_n++){
        seq[val_n] = rand() % 9;
        printf(" %d", seq[val_n]);
    }

    sleep(5);

    printf("\nType the Sequence: \n");
    for(val_n = 1; val_n <= 5; val_n++)
        scanf("%d", &seq_user[val_n]);
        checkSequence(seq, seq_user);
}

当我运行程序时,它首先出现“Sequence(number)”,然后仅在5秒后,序列和短语“typethesequence”被打印出来,同时在整个循环中出现这种情况。
我希望“序列(数字)”与序列同时出现,并且只在5秒后程序要求键入序列。另外,我想知道如何使序列在5秒后消失。
我该怎么做?

最佳答案

更改为:

printf("\n");
sleep(5);
printf("Type the Sequence: \n");

输出被缓冲,直到换行。

关于c - 在C循环内的 sleep 功能有问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55483994/

10-13 05:58