如何将循环暂停几秒钟?

how to pause a loop for a number of seconds?

本文关键字:几秒 循环 暂停      更新时间:2023-10-16

每次他完成其中一个案例时,我都会尝试暂停。但是我把 sleep(1( 放在哪里并不重要,它会休眠 5 秒,然后一次给出所有输出。或者当 im 要求 10 个输出时,它会等待 10 秒才能给我输出。

我想要的是获得下一个输出之间有 1 秒的输出,依此类推。这是我的代码,我把它做得尽可能小,所以它不会永远阅读。 我试图在几乎每个地方都放睡眠(1(,但结果都是一样的。

//include list
#include <stdio.h> 
#include <stdlib.h> 
#include <time.h>
#include <unistd.h>

// variable list
int i = 0;
int StopNow;
int start = 0;

int main(void) 
{ 
srand(time(0));
while(i<5) 
{
switch(rand() % 4 + 1)      // picking a random number between 1 and 4.
{
case 1:
printf("n 1");
break;
case 2:
printf("n 2");
break;
case 3:
printf("n 3");
break;
case 4:
printf("n 4");
break;
}
i++;
sleep(1);               // Pause 
}
}

我试图在一些在线编译器上运行你的代码 https://www.onlinegdb.com/online_c++_compiler

我假设你的代码没有问题,也许是编译器问题。

如果它仍然不起作用,则可能是您的缓冲区存在一些问题。

有时,在超出某些缓冲区或打印换行符之前,不会打印字符。有两种方法可以尝试

  1. sleep方法之前使用fflush(stdout)调用来清除缓冲区
  2. 使用库的更好方法C++cout因为库会自动为您刷新